• Operating System Video Tutorials

操作系统 - 进程控制块



进程控制块 (PCB) 是一种数据结构,包含与进程相关的各种信息。进程控制块也称为进程描述符或任务控制块。不同进程的 PCB 存储在操作系统内核的进程表中。

当创建一个新进程时,操作系统会为其初始化一个进程控制块,该块存储与进程相关的参数值,并跟踪进程状态(例如:新建、就绪、运行、等待或终止)。

PCB 对于几乎所有与进程相关的活动中的进程管理都非常重要。调度程序和资源管理器等许多实用程序都会访问和/或更新它们。由于 PCB 跟踪进程状态信息,因此它们在上下文切换中发挥着至关重要的作用。

进程控制块的结构

进程控制块存储许多有效进程管理所需的数据项。以下将通过图表解释其中一些数据项:

Structure of the Process Control Block

以下是一些数据项:

  • 进程号或 ID - 显示特定进程的标识号。
  • 进程状态 - 指定进程状态,例如新建、就绪、运行、等待或终止。
  • 程序计数器 - 包含进程中需要执行的下一条指令的地址。
  • 寄存器 - 指定进程使用的寄存器。包括累加器、索引寄存器、堆栈指针、通用寄存器等。
  • 打开文件列表 - 与进程关联的不同文件。
  • CPU 调度信息 - PCB 中包含的 CPU 调度信息包括进程优先级、调度队列指针等。这也可能包括任何其他调度参数。
  • 内存管理信息 - 内存管理信息包括页表或段表(取决于所使用的内存系统)。它还包含基寄存器、界限寄存器等的值。
  • I/O 状态信息 - 此信息包括进程使用的 I/O 设备列表、文件列表等。
  • 会计信息 - 时间限制、帐号、使用的 CPU 量、进程号等都是 PCB 会计信息的一部分。
  • 进程控制块的位置 - 进程控制块保存在一个受保护的内存区域中,防止普通用户访问。这是因为其中包含重要的进程信息。一些操作系统将 PCB 放在进程的内核堆栈的开头,因为它是一个安全的位置。

利用 PCB 的进程管理任务

进程控制块在执行各种进程管理活动中发挥着重要作用,因为它们存储与进程相关的关键信息。以下是经常访问 PCB 中存储的详细信息的一些主要操作:

上下文切换

在上下文切换期间,正在执行进程的进程状态保存在 CPU 寄存器中,并将其副本存储在相应的 PCB 中。下一个被选中执行的进程的状态从其 PCB 中获取,以便它可以执行。

进程调度

操作系统使用 PCB 的内容(例如进程优先级、进程状态和使用的资源)来调度就绪队列中的进程。通过评估优先级和其他相关信息,调度程序确定进程执行的顺序。

多任务处理

操作系统可以借助 PCB 中存储的信息(如资源分配、进程调度和进程同步)来同时运行多个进程。

资源共享

PCB 中存储的信息包括分配给进程的资源,例如打开的文件、共享变量、公共表和内存空间。当新进程请求资源时,操作系统会在 PCB 中搜索已分配的进程,检查它们是否可共享,并相应地分配资源。因此,PCB 在资源共享中起着重要作用。

广告