📜  进程表和进程控制块 (PCB)

📅  最后修改于: 2021-09-28 09:27:54             🧑  作者: Mango

在创建进程时,操作系统会执行多项操作。为了识别进程,它为每个进程分配一个进程标识号 (PID)。由于操作系统支持多道程序,因此需要跟踪所有进程。对于此任务,进程控制块 (PCB) 用于跟踪进程的执行状态。每个内存块都包含有关进程状态、程序计数器、堆栈指针、打开文件的状态、调度算法等信息。所有这些信息都是必需的,并且必须在进程从一种状态切换到另一种状态时保存。当进程从一种状态转换到另一种状态时,操作系统必须更新进程 PCB 中的信息。

进程控制块 (PCB) 包含有关进程的信息,即寄存器、量程、优先级等。进程表是一个 PCB 数组,这意味着逻辑上包含系统中所有当前进程的 PCB。

  • 指针——它是一个堆栈指针,当进程从一种状态切换到另一种状态时需要保存它以保留进程的当前位置。
  • 进程状态 –它存储进程的相应状态。
  • 进程号 –每个进程都分配有一个唯一的 ID,称为进程 ID 或 PID,用于存储进程标识符。
  • 程序计数器 –它存储包含要为进程执行的下一条指令的地址的计数器。
  • 寄存器 –这些是 CPU 寄存器,包括:累加器、基址、寄存器和通用寄存器。
  • 内存限制 –此字段包含有关操作系统使用的内存管理系统的信息。这可能包括页表、段表等。
  • 打开文件列表 –此信息包括为进程打开的文件列表。

杂项记帐和状态数据 –此字段包括有关 CPU 使用量、时间限制、作业或进程编号等的信息。
进程控制块存储处理器被阻止运行时的寄存器内容,也称为处理器的执行内容。这种执行内容架构使操作系统能够在进程返回运行状态时恢复进程的执行上下文。当进程从一种状态转换到另一种状态时,操作系统会更新进程 PCB 中的信息。操作系统在进程表中维护指向每个进程的 PCB 的指针,以便它可以快速访问 PCB。