尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

【操作系统】进程控制块PCB与上下文切换

【操作系统】进程控制块PCB与上下文切换
📅 发布时间:2026/6/25 13:57:37

考点频率:★★★★☆(常以1-2道选择题考查)
难度:⭐
建议:掌握PCB的作用与内容,理解上下文切换的开销与触发条件

1️⃣ 进程控制块 PCB(Process Control Block)

1.1 什么是PCB?

PCB是操作系统为每个进程专门维护的一个数据结构,用于记录进程的各种属性信息。它是进程存在的唯一标志,操作系统通过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 上下文切换的具体步骤(了解流程)

  1. 保存当前进程的上下文:将当前进程的PC、寄存器值、栈指针等CPU现场信息保存到该进程的PCB中。
  2. 将当前进程移入相应队列:根据调度决策,将当前进程移到就绪队列或阻塞队列。
  3. 选择下一个进程:调度程序从就绪队列中选择一个进程,获取其PCB。
  4. 恢复新进程的上下文:从新进程的PCB中恢复其PC、寄存器值、栈指针等,载入CPU。
  5. 将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. 进程ID
B. 进程优先级
C. 程序源代码
D. CPU寄存器值

解析:PCB存储进程标识、调度信息、现场信息和资源管理信息,但程序源代码存储在磁盘或内存的代码区,不在PCB中。选C。


例题2:当进程从运行状态变为就绪状态时,操作系统需要( )。

A. 保存该进程的CPU现场到PCB中
B. 销毁该进程的PCB
C. 从该进程的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 #上下文切换 #进程控制块 #操作系统

相关新闻

  • Strix Halo 内存带宽测试,大模型推理速度瓶颈分析
  • 卡美德生物科普RSPO1(R-spondin 1):解析组织再生与发育的核心调控机制
  • 2026年6月24日(周三)——科创50暴涨3.82%背后的结构性撕裂

最新新闻

  • 《AgentX Python 专栏》03-架构篇:Agent 和「调个 API」的本质区别,在架构上长什么样?
  • ROS C++回调机制与Spinning原理深度解析
  • 缠论量化实战:chan.py框架完整指南
  • 动物声纹分析实战:从生物声学到边缘AI部署
  • AI 编程工具链选型:从代码补全到智能重构的成本收益分析
  • AI 系统可观测性:从 Token 用量追踪到模型推理延迟的全链路监控

日新闻

  • Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
  • 怎么监控对标账号更新,2026年作者监控工作流,5款深度对比
  • EdgeRemover:专业级Windows Edge浏览器管理工具,彻底解决顽固软件卸载难题

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号