• 什么是PCB

      为了描述控制进程的运行,系统中存放进程的管理和控制信息的数据结构称为进程控制块(PCB Process Control Block),它是进程实体的一部分,是操作系统中最重要的记录性数据结构。它是进程管理和控制的最重要的数据结构,每一个进程均有一个PCB,在创建进程时,建立PCB,伴随进程运行的全过程,直到进程撤消而撤消。

  • PCB一般都包含什么

    1.程序ID(PID、进程句柄):它是唯一的,一个进程都必须对应一个PID。PID一般是×××数字

    2.特征信息:一般分系统进程、用户进程、或者内核进程等

    3.进程状态:运行、就绪、阻塞,表示进程现的运行情况

    4.优先级:表示获得CPU控制权的优先级大小

    5.通信信息:进程之间的通信关系的反映,由于操作系统会提供通信信道

    6.现场保护区:保护阻塞的进程用

    7.资源需求、分配控制信息

    8.进程实体信息,指明程序路径和名称,进程数据在物理内存还是在交换分区(分页)中

    9.其他信息:工作单位,工作区,文件信息等

  • 在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少也不一样,通常PCB应包含

以下一些信息。

   1.进程标识符信息

每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。UNIX系统中就是一个整型数。在进程创建时由系统赋予。进程标识符用于唯一的标识一个进程。一个进程通常有以下两种标识符。

   外部标识符。由创建者提供,通常是由字母、数字组成,往往是用户(进程)访问该进程使用。外部标识符便于记忆,如:计算进程、打印进程、发送进程、接收进程等。

   内部标识符:为了方便系统使用而设置的。在所有的OS中,都为每一个进程赋予一个唯一的整数,作为内部标识符。它通常就是一个进程的符号,为了描述进程的家族关系,还应该设置父进程标识符以及子进程标识符。还可以设置用户标识符,来指示该进程由哪个用户拥有。

  2.处理机状态信息

   说明进程当前所处的状态。为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待等。处理机状态信息主要是由处理机各种寄存器中的内容所组成。

   通用寄存器:又称为用户可视寄存器,可被用户程 序访问,用于暂存信息。

   指令寄存器存放要访问的下一条指令的地址。

   程序状态字PSW:其中含有状态信息。(条件码、 执行方式、中断屏蔽标志等)

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

  3.进程调度信息

   在PCB中还存放了一些与进程调度和进程对换有关的信息。

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

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

  (3)进程调度所需要的其他信息。(进程已等待CPU的时间总和、进程已执行的时间总和)

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

  进程上下文:是进程执行活动全过程的静态描述。包括计算机系统中与执行该进程有关的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集、数据集及各种堆栈值和PCB结构。可按一定的执行层次组合,如用户级上下文、系统级上下文等。

  进程存在的唯一标志:在进程的整个生命周期中,系统总是通过PCB对进程进行控制的,亦即,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志[