进程控制块
1. 简介
计算机系统同时执行多个程序。这使我们能够实现更好的吞吐量和用户体验。运行多个程序的概念由操作系统中的进程实现。
在本教程中,我们将讨论进程控制块 (PCB) 的概念,其中包含进程运行的有用信息。
2. 进程概念
进程是正在执行的程序。例如,我们可以编写一个 Java 应用程序并将其保存到磁盘。这被视为一个程序和一个被动实体。但是,当我们执行程序时,操作系统会创建一个 Java 进程。进程在执行时是活动实体。
上图表示一个进程及其组件。在左侧,我们显示内存 - 文本部分从较低的内存偏移量开始。进程的堆和堆栈部分可以根据进程的内存要求而增长。
3. 进程控制块
进程控制块表示操作系统中的一个进程。PCB也称为任务控制块。它是与特定流程关联的信息存储库。
它包含各种信息,例如:
3.1. 进程状态
进程状态表示操作系统中进程的状态。进程可以处于“新建”、“就绪”、“正在运行”、“等待”或“已终止”状态。
3.2. 程序计数器
一个进程包含几个由CPU线性执行的指令。程序计数器 (PC) 指示要为此进程执行的下一条指令的地址。
3.3. 中央处理器寄存器
寄存器是一小块内存,可以包含进程的状态信息。寄存器的大小和类型可能因计算机体系结构而异。它们包括累加器、索引寄存器、条件代码信息、通用寄存器和堆栈指针,仅举几例。
如果正在运行的进程发生中断,CPU 寄存器会存储进程的状态信息。这允许进程在调度程序计划再次运行时继续。
3.4. 其他统计数据
- CPU 调度信息:调度程序计划要执行的进程。它确定 CPU 执行进程所依据的条件。流程包含多个参数,例如进程优先级、调度队列信息以及各种其他调度参数
- 内存管理信息:执行进程需要内存,并且需要维护多个与内存相关的统计信息。其中包括基本和限制寄存器信息、页面和段表等
- 会计信息:会计信息衡量各种簿记数据。使用的 CPU 时间量、时间限制、帐号、作业或进程号等
- I/O 状态信息:此信息包括分配给进程的 I/O 设备列表、打开的文件列表等
4. PCB在上下文切换中的作用
PCB在进程的上下文切换中起着至关重要的作用。
有时,中断信号或操作系统调用等多个因素会中断正在运行的进程,并且进程会抢占其执行。发生这种情况时,操作系统会将当前执行统计信息保存在进程的PCB中。这可确保下次恢复进程执行。
让我们看一下上下文切换期间会发生什么:
让我们分解一下:
- 最初,进程P0正在运行,并发生中断
- 作为响应,操作系统保存P0的上下文并阻止其执行
- 然后操作系统加载另一个进程P1的PCB并开始执行
- 一段时间后,P1也收到中断
- 作为响应,操作系统保存P1的PCB上下文并阻止其执行
- 然后,操作系统加载P0 的 PCB 并从先前状态恢复执行
5. 结论
在本文中,我们讨论了流程的进程控制块。
首先,我们介绍了进程的概念以及PCB在操作系统中管理进程状态中的作用。然后,我们讨论了进程控制块的各个组件及其角色。
最后,我们讨论了进程控制块在进程上下文切换中的作用。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2023-02-15,如有侵权请联系 cloudcommunity@tencent 删除操作系统程序架构教程进程