简介
PCB中记录了操作系统所需的,用于描述进程的当前情况以及控制进程运行的全部信息。PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。例如,当OS要调度某进程执行时,要从该进程的PCB中查处其现行状态及优先级;在调度到某进程后,要根据其PCB中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址,找到其程序和数据;进程在执行过程中,当需要和与之合作的进程实现同步,通信或者访问文件时,也都需要访问PCB;当进程由于某种原因而暂停执行时,又须将器断点的处理机环境保存在PCB中。可见,在进程的整个生命期中,系统总是通过PCB对进程进行控制的,即系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的。所以说,PCB是进程存在的唯一标志。
组成
PCB进程控制块是进程的静态描述,由PCB、有关程序段和该程序段对其进行操作的数据结构集三部分组成。
在Unix或类Unix系统中,进程是由进程控制块,进程执行的程序,进程执行时所用数据,进程运行使用的工作区组成。其中进程控制块是最重要的一部分。
进程控制块是用来描述进程的当前状态,本身特性的数据结构,是进程中组成的最关键部分,其中含有描述进程信息和控制信息,是进程的集中特性反映,是操作系统对进程具体进行识别和控制的依据。
PCB一般包括:
1、程序ID(PID、进程句柄):它是唯一的,一个进程都必须对应一个PID。PID一般是整形数字
2、特征信息:一般分系统进程、用户进程、或者内核进程等
3、进程状态:运行、就绪、阻塞,表示进程现的运行情况
4、优先级:表示获得CPU控制权的优先级大小
5、通信信息:进程之间的通信关系的反映,由于操作系统会提供通信信道
6、现场保护区:保护阻塞的进程用
7、资源需求、分配控制信息
8、进程实体信息,指明程序路径和名称,进程数据在物理内存还是在交换分区(分页)中
9、其他信息:工作单位,工作区,文件信息等
作用
进程控制块
进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(包含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。
程序段
进程中能被进程调度程序在CPU上执行的程序代码段。
数据段
一个进程的数据段,可以是进程对应的程序加工处理的原始数据,也可以是程序执行后产生的中间或最终数据。
包含信息
在不同的操作系统中对进程的控制和管理机制不同,PCB中的信息多少也不一样,通常PCB应包含如下一些信息。
进程标识符信息
每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。UNIX系统中就是一个整型数。在进程创建时由系统赋予。进程标识符用于唯一的标识一个进程。一个进程通常有以下两种标识符。
外部标识符。由创建者提供,通常是由字母、数字组成,往往是用户(进程)访问该进程使用。外部标识符便于记忆,如:计算进程、打印进程、发送进程、接收进程等。
内部标识符:为了方便系统使用而设置的。在所有的OS中,都为每一个进程赋予一个唯一的整数,作为内部标识符。它通常就是一个进程的符号,为了描述进程的家族关系,还应该设置父进程标识符以及子进程标识符。还可以设置用户标识符,来指示该进程由哪个用户拥有。
处理机状态信息
说明进程当前所处的状态。为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待等。处理机状态信息主要是由处理机各种寄存器中的内容所组成。
通用寄存器。又称为用户可视寄存器,可被用户程 序访问,用于暂存信息。
指令寄存器。存放要访问的下一条指令的地址。
程序状态字PSW。其中含有状态信息。(条件码、 执行方式、中断屏蔽标志等)
用户栈指针。每个用户进程有一个或若干个与之相 关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。
进程调度信息
在PCB中还存放了一些与进程调度和进程对换有关的信息。
(1)进程状态。指明进程当前的状态,作为进程调度和对换时的依据。
(2)进程优先级。用于描述进程使用处理机的优先级别的一个整数,优先级高的进程优先获得处理机。
(3)进程调度所需要的其他信息。(进程已等待CPU的时间总和、进程已执行的时间总和)
(4)事件。这是进程由执行状态转变为阻塞状态所等待发生的事件。(阻塞原因)
进程上下文
是进程执行活动全过程的静态描述。包括计算机系统中与执行该进程有关的各种寄存器的值、程序段在经过编译之后形成的机器指令代码集、数据集及各种堆栈值和PCB结构。可按一定的执行层次组合,如用户级上下文、系统级上下文等。
进程存在的唯一标志
在进程的整个生命周期中,系统总是通过PCB对进程进行控制的,亦即,系统是根据进程的PCB而不是任何别的什么而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志。
进程的特征
1、动态性
2、并发性
3、独立性
进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位。没有建立进程的程序,不能作为一个独立的单位参加运行。
4、异步性
5、结构特性
从结构上看,进程由程序段、数据段及PCB三部分组成。
进程的状态及其转换
进程的三种基本状态
- 就绪状态(Ready)
当进程已经分配到除CPU以外的所有必要的资源后,只要能再获得处理机,就可以立即执行。
- 执行状态(Running)(运行状态)
指进程已获得处理机而执行的状态。
- 阻塞状态(Block)(等待状态)
进程因为发生某个事件而暂停执行时的状态(如:请求I/O、申请缓冲空间等)。有时也称“等待”状态或“睡眠”状态。
进程状态转换
①就绪→执行:调度
②执行→等待:等待某个事件发生而睡眠
③等待→就绪:因等待的事件发生而唤醒
④执行→就绪:时间片用完或出现高优先
就绪状态→执行状态
处于就绪状态的进程,当进程调度程序为它分配了处理机后,该进程便由就绪状态变为执行状态,正在执行的进程也称为当前进程。
执行状态→阻塞状态
正在执行的进程因发生某件事件而无法执行。例如:进程请求访问临界资源,而该资源正被其它进程访问,则请求该资源的进程将由执行状态转变为阻塞状态。
执行状态→就绪状态
正在执行的进程,如果事件发生或中断而被暂停执行,该进程便由执行状态转变为就绪状态。(分时系统中,时间片用完;抢占调度方式中,优先权高抢占处理机)
执行状态→终止状态
当一个进程经完成或发生某事件,如程序中出现地址越界、非法指令等错误,而被异常结束时,进程将由执行状态转变为终止状态。