进程管理中的数据结构

  在计算机系统中,对于每个资源和每个进程都设置了一个数据结构,用于表征其实体,称为资源信息表或进程信息表,其中包含了资源或进程的标识,描述,状态等信息以及一批指针。通过这些指针,可以将同类资源或进程的信息表,或者同一进程占有的资源信息表分类链接成不同的队列,以便于操作系统进行查找。分为四类:内存表,设备表,文件表和用于进程管理的进程表(通常又称为进程控制块PCB)。

进程控制块PCB(Process Control Block)

   PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构。

  PCB的具体作用:

  1. 作为独立运行基本单位的标志,也是进程存在于系统的唯一标志。当一个程序(含数据)配置了PCB后,就表示它已经是一个能在多道程序环境下独立运行的,合法的基本单位,也就是具有取得OS服务的权利。
  2. 能实现间断性运行方式。系统就可将CPU现场信息保存在被中断进程的PCB中,供该进程再次被调度执行时恢复CPU现场时使用。
  3. 提供进程管理所需要的信息。例如当调度程序调度某进程运行时,只能根据该进程PCB中记录的程序和数据在内存或外存中的始址地址,找到相应的程序或数据。
  4. 提供进程调度所需要的信息。例如只有处于就绪状态的进程才能被调度执行,而在PCB中就提供了进程处于何种状态的信息。
  5. 实现与其他进程的同步于通信。进程同步进制是用于实现诸进程的协调运行的,在采用信号量机制时,它要求在每个进程中都设置有相应的用于同步的信号量。在PCB中还具有实现进程通信的区域或通信队列指针等。

进程控制块中的信息

1)进程标识符 唯一标识一个进程,一个进程通常又两种标识符:

     (1)外部标识符。它是由创建者提供的。通常由字母,数字组成的。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可以设置用户标识,以指示拥有该进程的用户。

      (2)内部标识符。OS赋予每一个进程一个唯一的数字标识符,通常是一个进程的序号

2)处理机状态

        处理机状态信息也称为处理机的上下文,主要是由处理机的各种寄存器中的内容组成的。这些寄存器包括:

       (1)通用寄存器,又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息,在大多数处理机中,有8到32个通用寄存器;

       (2)指令计数器,存放了要访问的下一条指令的地址;

       (3)程序状态字PSW,其中含有状态信息,如条件码,执行方式,中断屏蔽标志等;

       (4)用户栈指针,指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。

3)进程调度信息  这些信息包括:

        (1)进程状态,指明进程当前状态,作为进程调度和对换的依据;

        (2)进程优先级,用于描述进程使用处理机的优先级别的一个整数,优先级别高的进程优先获得处理机;

        (3)进程调度所需的其他信息,它们与采用的进程调度算法有关。

        (4)事件,是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。

4)进程控制信息 这些信息包括:

         (1)程序和数据的地址

         (2)进程同步和通信机制

         (3)资源清单,在该清单中列出进程在运行期间所需的全部资源(除CPU以外),另外还有一张已分配到该进程资源的清单。

         (4)链接指针  给出本进程(PCB)所在队列中的下一个进程的PCB首地址。

进程控制块的组织方式

目前常用的组织方式有以下三种:

1.线性方式,即将系统中所有PCB都组织在一张的线性表中,将该表的首地址放在内存的一个专用区域中。方式实现简单,开销小,但每次查找时都需要扫描整张表。因此适合进程数目不多的系统。

2.链接方式,即把具有相同状态进程的PCB分别通过PCB的链接字链接成一个队列。

3.索引方式,即系统根据所有进程状态不同,建立几张索引表。并把各索引表在内存的首地址记录在内存的一些专用单元中。在索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。

你可能感兴趣的:(操作系统)