【OS笔记 7】进程控制块PCB详解

一、PCB是什么

PCB是用以记录与进程相关信息的主存区,是进程存在的唯一标志

【OS笔记 7】进程控制块PCB详解_第1张图片



二、PCB中的信息

1. 进程标识符

作用: 用于唯一地标识一个进程

• 进程本身:外标识、内部标识
• 家族信息:父进程、子进程信息

2. 处理机状态

处理机状态信息也称为处理机的上下文(Context),主要是由处理机的各种寄存器中的内容组成的。
也就是中断现场的保留区,当进程被切换时,处理机状态信息必须都保存在相应的PCB中,以便该进程在重新执行时能再从断点继续执行。

3. 进程调度信息

在OS进行调度时,必须了解进程的状态以及有关进程调度的信息。这些信息包括:

① 进程状态
就绪、执行、阻塞等,是进程调度和对换的依据

② 进程优先级
是分配CPU的重要依据

③ 其它信息
比如进程已等待CPU的时间总和、已执行的时间总和等

④ 事件
指的是阻塞原因(即程序由执行状态变为阻塞状态的原因)

4. 进程控制信息

① 程序和数据的首地址
调度到该进程的时候,可以找到其程序和数据

② 进程同步和通信机制
如消息队列指针、信号量等,以后的进程同步中会学到

③ 资源清单
列出了该进程在运行期间所需的全部资源(CPU除外),另外还有一张该进程已分配的资源清单

④ 链接指针
给出了该进程(PCB)所在队列中下一个进程的PCB首地址,跟链表一样


三、PCB的三种组织方式

1. 线性方式

系统中所有PCB都组织在一张线性表中,表的首地址存放在内存专用区

优点: 实现简单、开销小

缺点: 每次查找时都要扫描一整张表,因此适合进程数目不多的系统

【OS笔记 7】进程控制块PCB详解_第2张图片

2. 链接方式

具有相同状态进程的PCB分别通过PCB中的链接字链接成一个队列

【OS笔记 7】进程控制块PCB详解_第3张图片

3. 索引方式

系统根据所有进程状态的不同,建立几张索引表,并把索引表的首地址记录在内存的专用单元中。在每个索引表的表目中,记录具有相应状态的PCB在PCB表中的首地址

(其实就是改进版的线性方式,分类之后,变成了很多子表,不需要把整个PCB表都扫描一遍,只需要先根据进程状态找到对应的子表,然后再扫描子表就行了)

【OS笔记 7】进程控制块PCB详解_第4张图片

你可能感兴趣的:(操作系统OS,操作系统,PCB)