进程控制块PCB
PCB(Process Control Block)
进程控制块PCB是OS控制和管理进程时所用的基本数据结构,PCB是相关进程存在于系统中的标志,系统根据PCB而感知相关进程的存在。
PCB中包含了关于进程的一些信息,如进程标识(pid)、程序计数器、状态信息、CPU调度信息、内存管理信息、I/O状态信息等。
Linux的task_struct进程结构可用以下字段示意;实际字段、类型及所在头文件随内核版本变化:
pid_t pid;
long state;
unsigned int time_slice;
struct task_struct *parent;
struct list_head children;
struct files_struct *files;
struct mm_struct *mm;当CPU切换到另一个进程时,系统必须保存当前执行进程的上下文(context),并且加载需要被执行进程的上下文。进程的上下文由PCB及相关内核结构保存。
互动实验
保存与恢复两组寄存器
访问权限PRO
PRO EXCLUSIVE探索不止于此
尊享 Pro 权益解锁完整互动实验、进阶解析与精选参考答案。
动手练习
追踪两条暂停的指令流
A从PC=100、ACC=0开始,B从PC=200、ACC=10开始,每条指令使两者各加一。
- A执行两次,切换至B,B执行一次,再切回A,记录每一步的实时与保存寄存器。
- 解释A执行时保存记录为什么不必变化。
- 列出寄存器值之外的两种切换成本。