跳转至

进程控制块

来源:操作系统 / note/进程管理/进程/进程控制块.md

PCB:Process Control Block

又称进程描述符、进程属性

操作系统用于管理控制进程的一个专门数据结构,记录进程的各种属性,描述进程的动态变化过程

PCB 是操作系统为每个进程维护的一张“档案表”。

里面可能记录:

进程 ID:PID
进程状态:运行、就绪、阻塞
程序计数器 PC
寄存器内容
内存信息
打开的文件
优先级
父进程 ID
CPU 使用时间

操作系统靠 PCB 来管理进程。

比如进程 A 正在运行,突然时间片到了,操作系统要切换到进程 B。它会先把 A 当前的寄存器、PC 等信息保存到 A 的 PCB 中,然后从 B 的 PCB 中恢复 B 的运行状态。

PCB是系统感知进程存在的唯一标志

进程与PCB是一一对应的

进程表:所有进程的PCB集合

链表

多个链表:

• 所有的进程、就绪态的进程、阻塞态的进程….

进程控制块包含的信息

image.png

进程描述信息

  • 进程标识符(pid)
  • 进程名
  • 用户标识符(user ID)
  • 进程组关系

CPU现场信息

  • 寄存器值
  • 指向该进程页表的指针

所拥有的资源和使用情况

  • 虚拟地址空间的状况
  • 打开文件列表

进程控制信息

  • 当前状态
  • 优先级(priority)
  • 代码执行入口地址
  • 程序的磁盘地址
  • 运行统计信息
  • 进程间同步与通信
  • 进程的队列指针
  • 进程的消息队列指针

进程控制操作

原语:完成某种特定功能的一段程序,具有不可分割性或不可中断性,即原语的执行必须是连续的,在执行过程中不允许被打断