首页 进程控制块PCB
文章
取消

进程控制块PCB

操作系统中需要有描述进程存在和反映其变化的物理实体,也就是进程的静态描述,这包括3个部分:

  • 进程控制块(PCB,Process Control Block)
  • 有关程序段
  • 程序段对其操作的数据接口集。

接下来我们说说PCB。

PCB包含了有关进程的描述信息、控制信息、资源信息,是进程动态特征的集中反映。系统根据PCB感知进程的存在,通过PCB中所包含的各项变量的变化掌握进程所处的状态,以此来控制进程活动。由于进程的PCB是系统感知进程的唯一实体,因此在几乎所有的多道操作系统中,一个进程的PCB结构都是全部活部分常驻内存的。

不同操作系统,进程的PCB所包含的内存略有不同,基本内容是必需的。

描述信息

  1. 进程名或进程标识号。
  2. 用户名或用户标识号。每个进程都隶属于某个用户,用户名和用户标识号有利于资源共享和保护。
  3. 家族关系。在有的系统中进程之间胡成家族关系,通过程序的父子关系可以进一步联想到。

控制信息

  1. 进程当前状态。进程在活动期间可分为初始态、就绪态、执行态、等待态、终止态,一个进程在一个时刻只能处于其中一个状态。
  2. 进程优先级。它是选取进程占有处理机(如CPU)的重要依据。与进程优先级有关的PCB表项有以下几项:占用CPU时间、进程优先级偏移、占据内存时间。
  3. 程序开始地址。规定该进程的程序以此地址开始执行。
  4. 各种计时信息。给出进程占有和利用资源的有关情况。
  5. 通信信息。用来说明进程在执行过程中与别的进程所发生的信息交换情况。

资源管理信息

PCB中包含最多的是资源管理信息,包括有个存储器的信息、使用输入输出设备的信息、有关文件系统的信息等。具体内容如下:

  1. 占用内存大小和管理用数据结构指针,如内存管理中所用到的进程页表指针等。
  2. 在某些复杂系统中,还有对换或覆盖用的有关信息,如对换程序段长度、对换外存地址等,它们在进程申请、释放内存中使用。
  3. 共享程序段大小和起始地址。
  4. 输入输出设备的设备号,所要传送的数据长度、缓冲区地址、缓冲区长度及所用设备的有关数据结构指针等,它们在进程申请释放设备进行数据传输时使用。
  5. 指向文件系统的指针和有关标识。进程可以使用这些信息对文件系统进程操作。

CPU现场保护结构

当前进程因等待某个事件进入等待状态或因某种事件发生被终止在处理机上的执行时,为了以后该进程能在被打断处恢复执行,需要保护当前进程的CPU现场。PCB中设有专门的CPU现场保护结构,以存储退出执行时的进程现场数据。

由于PCB中包含较多的信息,一个一个PCB表往往要占用较大的存储空间(几百到几千个字节)。在有的系统中,为了减少PCB对内存的使用只允许PCB中最常用的部分,如CPU现场保护、进程描述信息和控制信息等常驻内存,PCB结构中的其他部分则放在外存之中,待该进程将要执行时与其他数据一起装入内存。

本文由作者按照 CC BY 4.0 进行授权

程序和进程

进程控制