进程控制块(PCB)的结构

2019-07-14 07:23发布


进程控制块(PCB)的结构

进程控制块 PCB (Process Control Block):        存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。 在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少也不一样,通常PCB应包含如下一些信息。
1、进程标识符 name:      每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。UNIX系统中就是一个整型数。在进程创建时由系统赋予。 2、进程当前状态 status:        说明进程当前所处的状态。为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待磁盘I/O完成队列等等。 3、进程相应的程序和数据地址,以便把PCB与其程序和数据联系起来。 4、进程资源清单。列出所拥有的除CPU外的资源记录,如拥有的I/O设备,打开的文件列表等。 5、进程优先级 priority:        进程的优先级反映进程的紧迫程序,通常由用户指定和系统设置。UNIX系统采用用户设置和系统计算相结合的方式确定进程的优先级 。 6、CPU现场保护区 cpustatus:        当进程因某种原因不能继续占用CPU时(等待打印机),释放CPU,这时就要将CPU的各种状态信息保护起来,为将来再次得到处理机恢复CPU的各种状态,继续运行。 7、进程同步与通信机制 用于实现进程间互斥、同步和通信所需的信号量等。 8、进程所在队列PCB的链接字   根据进程所处的现行状态,进程相应的PCB参加到不同队列中。PCB链接字指出该进程所在队列中下一个进程PCB的首地址。 9、与进程有关的其他信息。 如进程记账信息,进程占用CPU的时间等。 10、当前队列指针 next:        登记与本进程处于同一队列的下一个进程的PCB的地址。        11、总链指针 all-q-next:     12、执行程序开始地址 start-addr:



进程的静态描述:由三部分组成 PCB、有关程序段和该程序段对其进行操作的数据结构集。
各部分的作用:
1 进程控制块:用于描述进程情况及控制进程运行所需的全部信息。                                                    
2 程序段:是进程中能被进程调度程序在CPU上执行的程序代码段。
3 数据段:一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。
  PCB中主要包括四个方面用于描述和控制进程运行的信息。
  1.进程标识符信息:进程标识符用于唯一的标识一个进程。一个进程通常有以下两种标识符。
       外部标识符。由创建者提供,通常是由字母、数字组成,往往是用户(进程)访问该进程使用。外部标识符便于记忆,如:计算进程、打印进程、发送进程、接收进程等。
       内部标识符:为了方便系统使用而设置的。在所有的OS中,都为每一个进程赋予一个唯一的整数,作为内部标识符。它通常就是一个进程的符号,为了描述进程的家族关系,还应该设置父进程标识符以及子进程标识符。还可以设置用户标识符,来指示该进程由哪个用户拥有。
2、处理机状态信息:处理机状态信息主要是由处理机各种寄存器中的内容所组成。
        通用寄存器。又称为用户可视寄存器,可被用户程 序访问,用于暂存信息。
        指令寄存器。存放要访问的下一条指令的地址。
        程序状态字PSW。其中含有状态信息。(条件码、 执行方式、中断屏蔽标志等)
        用户栈指针。每个用户进程有一个或若干个与之相 关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。
3.进程调度信息:在PCB中还存放了一些与进程调度和进程对换有关的信息。
   (1)进程状态。指明进程当前的状态,作为进程调度和对换时的依据。
   (2)进程优先级。用于描述进程使用处理机的优先级别的一个整数,优先级高的进程优先获得处理机。
   (3)进程调度所需要的其他信息。(进程已等待CPU的时间总和、进程已执行的时间总和)
   (4)事件。这是进程由执行状态转变为阻塞状态所等待发生的事件。(阻塞原因)
进程上下文:
    是进程执行活动全过程的静态描述。包括计算机系统中与执行该进程有关的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集、数据集及各种堆栈值和PCB结构。可按一定的执行层次组合,如用户级上下文、系统级上下文等。