news 2026/6/24 9:47:02

【操作系统】进程状态转换(三态模型/五态模型)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【操作系统】进程状态转换(三态模型/五态模型)

考点频率:★★★★★(几乎必考1-2题)
难度:⭐
建议:熟练画出三态模型转换图,掌握五态模型中新增状态的转换条件

1️⃣ 为什么进程需要状态?

进程在执行过程中,会因CPU调度、I/O请求、资源等待等原因,在不同状态之间切换。操作系统通过记录进程的状态,来决定下一步对其采取什么操作(比如分配CPU、等待资源等)。进程状态是操作系统进行进程调度和资源分配的重要依据。就好比工厂里的订单有“待处理”、“处理中”、“已发货”等状态,以便统筹安排。

2️⃣ 三态模型(最基本的模型)

三态模型将进程分为三种基本状态,它们是进程生命周期的核心。几乎所有操作系统教材都从这里开始讲起。

状态说明典型场景
就绪(Ready)进程已获得除CPU外的所有资源,等待CPU调度刚被创建、时间片用完被换下
运行(Running)进程正在CPU上执行指令被调度选中
阻塞(Blocked/Waiting)进程因等待某事件(如I/O完成)而暂停执行等待键盘输入、等待磁盘读写完成

三态转换图(文字描述)

┌─────────────────────┐ │ ↓ ┌─────┴─────┐ ┌─────┴─────┐ │ 就绪 │────────│ 运行 │ │ (Ready) │ 调度 │ (Running) │ └─────┬─────┘ └─────┬─────┘ │ │ │ 释放CPU │ 等待I/O │ (时间片完/抢占) │ (资源不足) │ ↓ │ ┌─────┴─────┐ └───────────────│ 阻塞 │ 事件发生 │ (Blocked) │ (I/O完成) └───────────┘

四种状态转换(重点记箭头)

转换方向触发条件说明
就绪 → 运行就绪 → 运行进程被调度程序选中由调度算法决定(如时间片轮转、优先级)
运行 → 就绪运行 → 就绪时间片用完 / 被高优先级进程抢占当前进程让出CPU,回到就绪队列末尾(或按优先级插入)
运行 → 阻塞运行 → 阻塞请求I/O / 等待事件(如wait、信号量)进程主动放弃CPU,去等待某种资源或事件
阻塞 → 就绪阻塞 → 就绪I/O完成 / 等待的事件发生进程获得了所需资源,回到就绪队列等待调度

⚠️不能直接转换的状态

  • 阻塞 → 运行(阻塞的进程不能直接获得CPU,必须先转为就绪)
  • 就绪 → 阻塞(就绪进程没有占用CPU,无法主动请求I/O)

3️⃣ 五态模型(更完整的模型)

三态模型缺少对“进程被创建但尚未加载”和“进程已终止但尚未回收”这两个阶段的描述,五态模型在此基础上补充了新建态终止态,让进程的生命周期描述更加完整。五态模型比三态模型多了两个状态,常用于考察进程从生到死的完整过程。

新增状态说明
新建(New)进程正在被创建,尚未加载到内存(如fork()后、exec()之前),操作系统还在为它分配资源、建立PCB。
终止(Terminated)进程已结束执行(调用了exit或收到终止信号),但PCB尚未被回收(僵尸状态),等待父进程读取退出状态后由操作系统回收资源。

五态模型的状态转换

新建 ────→ 就绪 ────→ 运行 ────→ 终止 ↑↑ │ ↓ ││ │ 等待I/O ││ ↓ ││ 阻塞 │└─────────┘ │ 事件发生 └──────────┘

新增转换

  • 新建 → 就绪:操作系统完成进程创建,将其放入就绪队列
  • 运行 → 终止:进程执行完毕或发生致命错误
  • 阻塞 → 就绪:等待的事件发生(同三态)
  • 就绪 → 运行:被调度器选中(同三态)
  • 运行 → 就绪:时间片完或被抢占(同三态)
  • 运行 → 阻塞:请求I/O(同三态)

4️⃣ 三态 vs 五态对比表

对比项三态模型五态模型
状态数3种5种
缺少的状态无新建/终止包含完整生命周期
适用场景简化理解、进程调度核心完整描述进程从创建到消亡
考查重点四种转换关系新增状态的含义

5️⃣ 常见考点与易错点

  1. 进程状态转换由谁控制:调度是操作系统内核完成的,不是进程自己随意跳转。
  2. 运行→阻塞一定是进程主动:因为请求I/O等操作是进程自己发起的(通过系统调用),所以是进程主动行为。
  3. 阻塞→就绪是被动行为:由I/O中断或事件完成唤醒,进程被操作系统移回就绪队列,是被动的。
  4. 新建态和终止态可能不在内存中:新建时PCB在创建但进程映像可能尚未加载;终止时进程映像已被回收但PCB残留。

6️⃣ 经典例题

例题1:某进程从运行状态变为阻塞状态的原因可能是( )。

A. 时间片用完
B. 被更高优先级进程抢占
C. 请求I/O操作
D. 进程调度程序选中了该进程

解析:A和B会导致运行→就绪,D是就绪→运行,只有C(请求I/O)会导致运行→阻塞。选C


例题2:在三态模型中,一个进程从阻塞状态变为就绪状态,通常是由( )触发的。

A. 调度程序
B. 该进程主动请求
C. 等待的事件发生(如I/O完成)
D. 时间片用完

解析:阻塞→就绪是被动转换,由等待的事件完成(如I/O中断)触发。选C


例题3:下列进程状态转换中,不可能发生的是( )。

A. 就绪→运行
B. 运行→就绪
C. 阻塞→运行
D. 运行→阻塞

解析:阻塞→运行不可能,必须先经过阻塞→就绪,再就绪→运行。选C


例题4(五态模型):五态模型中,进程处于“新建态”时,以下描述正确的是( )。

A. 进程正在CPU上执行
B. 进程正在等待I/O操作完成
C. 进程的PCB正在被创建,但尚未进入就绪队列
D. 进程已执行完毕,等待父进程回收

7️⃣ 记忆口诀

就绪等待CPU,运行指令正执行。
阻塞等待I/O完,三种状态要分清。
新建终止补两态,完整生命周期明。

状态转换速记:

  • 就绪→运行:被调度
  • 运行→就绪:时间到/被抢
  • 运行→阻塞:等I/O
  • 阻塞→就绪:I/O完

8️⃣ 小测验(评论区对答案)

某进程正在执行,此时发生了一个时钟中断,该进程的状态转换是( )。
A. 运行→就绪
B. 运行→阻塞
C. 就绪→运行
D. 阻塞→就绪

🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #进程状态 #三态模型 #五态模型 #操作系统

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 9:35:14

Privy ID在环境变量当中的配置

Privy 是一个专门做 Web3 用户登录 + 钱包管理 + 身份系统 的基础设施服务,本质上可以理解为: 👉 “帮你把 Web3 钱包登录做成像 Google Login 一样简单的 SDK” Privy 的 App ID 应该写在客户端;它本身就是公开标识,设计上可以暴露给浏览器。 Privy 两个凭证的分工 变量…

作者头像 李华
网站建设 2026/6/24 9:25:44

2026 视频转文字工具推荐|在线视频转写软件实测对比

2026 年高校教研、自媒体创作、企业线下会务全面进入视频资料数字化刚需阶段,全网大量用户搜索视频转文字工具、在线视频转写、视频自动提取字幕、会议录像转文稿、公开课视频扒稿等需求。伴随 ASR 语音识别算法迭代,不少视频转写工具优化降噪识别&#…

作者头像 李华
网站建设 2026/6/24 9:20:22

5个PDFPatcher实战技巧:免费解决PDF格式难题的完整指南

5个PDFPatcher实战技巧:免费解决PDF格式难题的完整指南 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等 项目地址: https://g…

作者头像 李华
网站建设 2026/6/24 9:13:47

硬件开发如何压缩选型到出方案的全流程?这几招很实用

做硬件设计,时间好像永远不够用。一个中等复杂度的板子,从立项到原理图定型,真正花在电路设计和计算上的精力可能不到一半,更多时候是在反复做三件事:查器件参数、对规格书、找备选物料。如果有工具能把这部分机械劳动…

作者头像 李华