进程控制块PCB
进程控制块
1)进程控制块是由OS维护的用来记录进程相关信息的一块内存
2)每个进程在OS中的登记表项(可能有总数目限制),OS据此对进程进行控制和管理(PCB中的内容会动态改变)
3)处于核心段,通常不能由应用程序自身的代码来直接访问,而要通过系统调用,或通过UNIX中的进程文件系
统(/proc)直接访问进程映象(image)。
进程控制块的内容
进程描述信息:
进程标识符(process ID),唯一,通常是一个整数;
进程名,通常基于可执行文件名(不唯一);
用户标识符(user ID);进程组关系(process group)
进程控制信息:
当前状态;
优先级(priority);
代码执行入口地址;(代码加载到内存的哪个位置)
程序的外存地址;
运行统计信息(执行时间、页面调度(缺页);
进程间同步和通信;阻塞原因
资源占用信息:虚拟地址空间的现状、打开文件列表
CPU现场保护结构:寄存器值(通用、程序计数器PC、状态PSW(program status word),地址包括栈指针)--一个进程时间片用完暂停,保存信息,下次运行时,接着执行
文件描述符记录打开哪些文件和I/O出错的文件
PCB的组织方式
链表:同一状态的进程其PCB成一链表,多个状态对应多
个不同的链表
各状态的进程形成不同的链表:就绪链表、阻塞链表
索引表:同一状态的进程归入一个index表(由index指向
PCB),多个状态对应多个不同的index表
各状态的进程形成不同的索引表:就绪索引表、阻塞索引表
以下内容参考:https://www.dazhuanlan.com/2019/10/16/5da68f3491386/
PCB中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
因此,PCB的作用:OS是根据PCB来对并发执行的进程进行控制和管理的。
当OS要调度某进程执行时,要从该进程的PCB中查出其现行状态及优先级;在调度到某进程后,要根据其PCB中所保存的CPU处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存地址,找到其程序和数据。
程序在执行的过程中,当需要和与之合作的进程实现同步、通信或访问文件时,也都需要访问PCB;当进程由于某种原因而暂停执行时,又须将其断点的CPU环境保存在PCB中。
在进程的整个生命周期中,系统总是通过PCB对进程进行控制。PCB是进程存在的唯一标志。