操作系统 PCB

参考:

https://www.jianshu.com/p/1e7397b4d80a

https://blog.csdn.net/IT_10/article/details/89819138

https://www.cnblogs.com/cjdty/p/10911490.html


进程控制块,Process Control Block, PCB。

操作系统管理控制进程运行的信息集合,操作系统用 PCB 来描述进程的基本情况以及运行变化的过程,PCB 是进程存在的唯一标志

进程的创建:为进程创建 PCB。

进程的终止:回收其 PCB。

进程的组织管理:通过对 PCB 的组织管理实现。

进程控制块中的信息

1) 进程标识符

(1) 内部标识符

操作系统为每一个进程赋予的唯一数字标识符,系统使用。

(2) 外部标识符

由创建者提供,通常由字母与数字组成,往往是由用户(进程)在访问该进程时使用。

描述进程的家族关系,设置父进程标识及子进程标识,还可设置用户标识,以指示拥有该进程的用户。

2) 处理机状态信息

主要是由处理机的各种寄存器中的内容组成的,处理机被中断时,所有这些信息都必须保存在 PCB 中,以便在该进程重新执行时,能从断点继续执行。

通用寄存器、程序计数器 PC、程序状态字PSW。

栈指针:过程调用 / 系统调用 / 终端处理和返回时需要用到。

3) 进程调度信息

进程状态。

进程优先级。

进程调度所需的其它信息:与进程调度算法有关事件,指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。

4) 进程控制信息

程序和数据的地址。

进程同步和通信机制。为支持进程通信与通信相关的各种标志、信号、信件等,这些信息存在接收方的进程控制块中。

资源清单:除 CPU 以外的、进程所需的全部资源及已经分配到该进程的资源,如打开的文件等。

链接指针:本进程所在队列中的下一个进程的 PCB 的首地址。

作用

PCB 可以被操作系统中的多个模块读或修改,如被调度程序、资源分配程序、中断处理程序以及监督和分析程序等读或修改。

OS 是根据 PCB 来对并发执行的进程进行控制和管理。

PCB 是操作系统中最重要的记录型数据结构。

Linux 系统中用 task_struct 数据结构。

1、作为独立运行基本单位的标志。

2、能实现间断性运行方式。

3、提供进程管理所需要的信息。

4、提供进程调度所需要的信息。

5、实现与其他进程的同步与通信。

组织方式

PCB 通常是系统内存占用区中的一个连续存储区。

线性方式

把所有 PCB 组织在一张线性表中,将该表的首地址存放在内存的一个专用区域中,每次查找时需要扫描全表。

适用于系统中进程数目不多的情况。

链表

把具有同一状态的 PCB,用其中的链接字链接成一个队列。

img

索引

各个索引表在内存单元中的首地址记录在内存中的专用单元中。添加索引表的方式记录具有相应状态下的某个 PCB 在 PCB 表中的地址。

img

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