考点频率★★★★☆常以1-2道选择题考查难度⭐建议掌握PCB的作用与内容理解上下文切换的开销与触发条件1️⃣ 进程控制块 PCBProcess Control Block1.1 什么是PCBPCB是操作系统为每个进程专门维护的一个数据结构用于记录进程的各种属性信息。它是进程存在的唯一标志操作系统通过PCB来感知、管理和控制进程。类比PCB 相当于进程的“身份证”。没有PCB的进程操作系统就“不认识”它也无法对其进行调度和管理。一个程序要成为进程第一步就是操作系统为其创建PCB进程结束时操作系统回收PCB。PCB 的生命周期和进程完全同步。1.2 PCB中存放哪些信息重点软考常考查PCB的内容分类需要掌握以下四个维度的信息维度包含信息说明进程标识信息PID进程ID、父进程ID、用户ID用于唯一标识进程进程调度信息进程状态就绪/运行/阻塞、优先级、调度数据用于进程调度决策进程控制信息程序计数器PC、CPU寄存器值、栈指针用于保存CPU现场便于上下文切换资源管理信息内存分配信息基址/限长、打开文件列表、I/O设备状态用于资源回收与共享⚠️注意PCB中不包含程序源代码或程序代码本身代码存放在内存的代码段中。1.3 PCB的组织方式系统中有多个进程PCB也需要被高效管理。常见组织方式有链接方式将同一状态如就绪态的PCB用链表链接起来形成就绪队列、阻塞队列等。索引方式按进程状态建立索引表每个索引表项指向对应状态的PCB。软考主要考查链接方式知道“就绪队列”是PCB的链表即可。2️⃣ 上下文切换2.1 什么是上下文切换上下文切换是指CPU从当前正在执行的进程切换到另一个进程时保存当前进程的CPU现场上下文并恢复下一个进程的CPU现场的过程。进程上下文 进程的PCB CPU寄存器值 程序计数器 堆栈指针等执行环境信息2.2 上下文切换的触发时机触发方式具体场景是被动还是主动中断时钟中断时间片用完、I/O中断被动系统调用进程主动请求I/O、wait()、sleep()等主动异常缺页异常、除零错误等被动进程自己触发异常2.3 上下文切换的具体步骤了解流程保存当前进程的上下文将当前进程的PC、寄存器值、栈指针等CPU现场信息保存到该进程的PCB中。将当前进程移入相应队列根据调度决策将当前进程移到就绪队列或阻塞队列。选择下一个进程调度程序从就绪队列中选择一个进程获取其PCB。恢复新进程的上下文从新进程的PCB中恢复其PC、寄存器值、栈指针等载入CPU。将CPU控制权交给新进程新进程开始执行。2.4 上下文切换的开销常考上下文切换本身是纯开销——它不做任何有用工作只是保存和恢复数据。上下文切换的时间开销取决于CPU寄存器数量寄存器越多保存恢复的数据量越大TLB快表刷新切换地址空间时TLB需要刷新或标记失效导致后续访存变慢Cache命中率下降新进程的数据不在Cache中初期执行会慢现代操作系统通过硬件多线程Hyper-Threading或增加寄存器组来减少上下文切换的开销。3️⃣ PCB vs 上下文切换 关系图文字描述进程A运行中 → 中断/系统调用 → 保存A的上下文到PCB_A ↓ 调度程序选B ↓ 恢复PCB_B中的上下文到CPU ↓ 进程B开始运行4️⃣ 经典例题例题1进程控制块PCB是进程存在的唯一标志。以下信息中不会出现在PCB中的是 。A. 进程IDB. 进程优先级C. 程序源代码D. CPU寄存器值解析PCB存储进程标识、调度信息、现场信息和资源管理信息但程序源代码存储在磁盘或内存的代码区不在PCB中。选C。例题2当进程从运行状态变为就绪状态时操作系统需要 。A. 保存该进程的CPU现场到PCB中B. 销毁该进程的PCBC. 从该进程的PCB中恢复CPU现场D. 将该进程从就绪队列移到阻塞队列解析运行→就绪时进程需要让出CPU操作系统会保存CPU现场到PCB然后将该进程放入就绪队列不会销毁PCB。选A。例题3判断进程上下文切换时操作系统需要保存当前进程的CPU寄存器值和程序计数器到其PCB中。 解析正确保存上下文的具体内容包含寄存器值和PC。选A。5️⃣ 记忆口诀PCB是身份证PID状态优先级。寄存器PC在中间没有代码只有址。上下文切换费时间保存恢复占资源。6️⃣ 小测验评论区对答案以下关于进程上下文切换的叙述中正确的是 。A. 上下文切换时操作系统需要将当前进程的程序代码保存到PCB中B. 上下文切换的时间开销与CPU寄存器的数量无关C. 上下文切换时当前进程的CPU现场信息保存在PCB中D. 进程上下文切换完成后新进程的PCB会被销毁本专栏日更2篇点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #PCB #上下文切换 #进程控制块 #操作系统
【操作系统】进程控制块PCB与上下文切换
发布时间:2026/6/25 13:44:14
考点频率★★★★☆常以1-2道选择题考查难度⭐建议掌握PCB的作用与内容理解上下文切换的开销与触发条件1️⃣ 进程控制块 PCBProcess Control Block1.1 什么是PCBPCB是操作系统为每个进程专门维护的一个数据结构用于记录进程的各种属性信息。它是进程存在的唯一标志操作系统通过PCB来感知、管理和控制进程。类比PCB 相当于进程的“身份证”。没有PCB的进程操作系统就“不认识”它也无法对其进行调度和管理。一个程序要成为进程第一步就是操作系统为其创建PCB进程结束时操作系统回收PCB。PCB 的生命周期和进程完全同步。1.2 PCB中存放哪些信息重点软考常考查PCB的内容分类需要掌握以下四个维度的信息维度包含信息说明进程标识信息PID进程ID、父进程ID、用户ID用于唯一标识进程进程调度信息进程状态就绪/运行/阻塞、优先级、调度数据用于进程调度决策进程控制信息程序计数器PC、CPU寄存器值、栈指针用于保存CPU现场便于上下文切换资源管理信息内存分配信息基址/限长、打开文件列表、I/O设备状态用于资源回收与共享⚠️注意PCB中不包含程序源代码或程序代码本身代码存放在内存的代码段中。1.3 PCB的组织方式系统中有多个进程PCB也需要被高效管理。常见组织方式有链接方式将同一状态如就绪态的PCB用链表链接起来形成就绪队列、阻塞队列等。索引方式按进程状态建立索引表每个索引表项指向对应状态的PCB。软考主要考查链接方式知道“就绪队列”是PCB的链表即可。2️⃣ 上下文切换2.1 什么是上下文切换上下文切换是指CPU从当前正在执行的进程切换到另一个进程时保存当前进程的CPU现场上下文并恢复下一个进程的CPU现场的过程。进程上下文 进程的PCB CPU寄存器值 程序计数器 堆栈指针等执行环境信息2.2 上下文切换的触发时机触发方式具体场景是被动还是主动中断时钟中断时间片用完、I/O中断被动系统调用进程主动请求I/O、wait()、sleep()等主动异常缺页异常、除零错误等被动进程自己触发异常2.3 上下文切换的具体步骤了解流程保存当前进程的上下文将当前进程的PC、寄存器值、栈指针等CPU现场信息保存到该进程的PCB中。将当前进程移入相应队列根据调度决策将当前进程移到就绪队列或阻塞队列。选择下一个进程调度程序从就绪队列中选择一个进程获取其PCB。恢复新进程的上下文从新进程的PCB中恢复其PC、寄存器值、栈指针等载入CPU。将CPU控制权交给新进程新进程开始执行。2.4 上下文切换的开销常考上下文切换本身是纯开销——它不做任何有用工作只是保存和恢复数据。上下文切换的时间开销取决于CPU寄存器数量寄存器越多保存恢复的数据量越大TLB快表刷新切换地址空间时TLB需要刷新或标记失效导致后续访存变慢Cache命中率下降新进程的数据不在Cache中初期执行会慢现代操作系统通过硬件多线程Hyper-Threading或增加寄存器组来减少上下文切换的开销。3️⃣ PCB vs 上下文切换 关系图文字描述进程A运行中 → 中断/系统调用 → 保存A的上下文到PCB_A ↓ 调度程序选B ↓ 恢复PCB_B中的上下文到CPU ↓ 进程B开始运行4️⃣ 经典例题例题1进程控制块PCB是进程存在的唯一标志。以下信息中不会出现在PCB中的是 。A. 进程IDB. 进程优先级C. 程序源代码D. CPU寄存器值解析PCB存储进程标识、调度信息、现场信息和资源管理信息但程序源代码存储在磁盘或内存的代码区不在PCB中。选C。例题2当进程从运行状态变为就绪状态时操作系统需要 。A. 保存该进程的CPU现场到PCB中B. 销毁该进程的PCBC. 从该进程的PCB中恢复CPU现场D. 将该进程从就绪队列移到阻塞队列解析运行→就绪时进程需要让出CPU操作系统会保存CPU现场到PCB然后将该进程放入就绪队列不会销毁PCB。选A。例题3判断进程上下文切换时操作系统需要保存当前进程的CPU寄存器值和程序计数器到其PCB中。 解析正确保存上下文的具体内容包含寄存器值和PC。选A。5️⃣ 记忆口诀PCB是身份证PID状态优先级。寄存器PC在中间没有代码只有址。上下文切换费时间保存恢复占资源。6️⃣ 小测验评论区对答案以下关于进程上下文切换的叙述中正确的是 。A. 上下文切换时操作系统需要将当前进程的程序代码保存到PCB中B. 上下文切换的时间开销与CPU寄存器的数量无关C. 上下文切换时当前进程的CPU现场信息保存在PCB中D. 进程上下文切换完成后新进程的PCB会被销毁本专栏日更2篇点击头像 → 专栏《软考中级高频考点》订阅第一时间接收新内容#软考中级 #软件设计师 #PCB #上下文切换 #进程控制块 #操作系统