进程控制块(PCB)
用来描述和控制进程的运行的一个数据结构——进程控制块PCB(Process Control Block),是进程实体的一部分,是操作系统中最重要的记录型数据结构。
- PCB是进程存在的唯一标志
- 系统能且只能通过PCB对进程进行控制和调度
- PCB记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息
PCB中的信息
1 进程标识符
进程标识符用于唯一地标识一个进程。
一个进程通常有两种标识符:
- 内部标识符:在所有的操作系统中,都为每一个进程赋予了一个唯一的数字标识符,它通常是一个进程的序号。设置内部标识符主要是为了方便系统使用。
- 外部标识符:它由创建者提供,通常是由字母、数字组成,往往是由用户(进程)在访问该进程时使用。为了描述进程的家族关系,还应设置父进程标识及子进程标识。此外,还可设置用户标识,以指示拥有该进程的用户。
2 处理机状态
处理机状态信息主要是由处理机的各种寄存器中的内容组成的。
包括:
① 通用寄存器;
② 指令计数器;
③ 程序状态字PSW;
④ 用户栈指针。
这些信息显然和进程相关,因此,进程一旦被中断,就必须把这些信息保存在PCB中,以便在恢复运行时能完全恢复中断前的状态。
3 进程调度信息
在PCB中还存放一些与进程调度和进程对换有关的信息,
包括:
① 进程状态;
② 进程优先级;
③ 进程调度所需的其它信息,它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、进程已执行的时间总和等;
④ 事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。
4 进程控制信息
进程控制信息包括:
① 程序和数据的地址;
② 进程同步和通信机制,指实现进程同步和进程通信时必需的机制,如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;
③ 资源清单,即一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;
④ 链接指针,它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。
PCB的组织方式
PCB的组织方式是指如何组织和管理多个PCB。
- 链接方式
把具有同一状态的PCB,用其中的链接字链接成一个队列。这样,可以形成就绪队列、若干个阻塞队列和空白队列等。就绪队列常按进程优先级的高低排列,把优先级高的进程的PCB排在队列前面。根据阻塞原因的不同把处于阻塞状态的进程的PCB排成等待I/O操作完成的队列和等待分配内存的队列等。
- 索引方式
系统根据所有进程的状态建立几张索引表。例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。在每个索引表的表目中,记录具有相应状态的某个PCB在PCB表中的地址。