PCB(Process Control Block)的内容
- PCB记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
PCB的作用
-
使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位, 一个能与其它进程并发执行的进程。或者说, OS 是根据 PCB 来对并发执行的进程进行控制和管理的,包括进程同步,通信,访问文件,进程状态(暂停等)。
OS控制进程
OS对进程的管理
- 系统创建进程时,随之创建一个PCB,进程结束时回收PCB。PCB经常被OS的多个模块读或修改(调度程序,资源分配程序,中断处理程序,监督和分析程序)。故PCB常驻于OS专门开辟的PCB区。
PCB中的信息
进程标识符
作用: 唯一标识一个进程,一个进程有两种标识符。
-
内部标识符
在操作系统中唯一,主要为了方便系统调用。 -
外部标识符
用户(进程)在访问该进程时使用。为了描述进程的亲缘关系,还应设置父进程标识及子进程标识,还可以设置用户标识。
处理机(CPU)状态
CPU的状态信息存储于CPU中的各种寄存器中,CPU在运行时,许多信息放在寄存器中,当CPU被中断时,所有的CPU信息应从寄存器保存到PCB中,以便该进程重新执行时,能从断点继续执行。
- 寄存器种类
-
通用寄存器
又称用户可视寄存器,用户程序可以访问,暂存信息。 -
指令计数器
存放了要访问下一条指令的地址。 -
程序状态字PSW
含有状态信息,如条件码,执行方式,中断屏蔽标志 -
用户栈指针
每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。
-
进程调度信息
-
进程状态
进程的当前状态,作为进程调度和兑换时的依据。 -
进程优先级
CPU执行进程的优先程度。 -
调度相关的其他信息
与进程的调度算法相关,比如:进程已等待CPU的时间总和,进程已执行的时间总和。 -
事件
进程的阻塞原因
进程控制信息
- 程序和数据的地址
进程的程序和数据所在外存的首地址,进程再次调度时从PCB找出该信息。 - 进程同步和通信机制
实现进程同步和进程通信的必须机制,如消息队列指针,信号量。 - 资源清单
一张出CPU以外的,进程所需要的全部资源及已经分配到该进程的资源清单。 - 链接指针
本进程的PCB所在队列中的下一个进程PCB的首地址。