news 2026/4/28 10:09:24

进程的状态

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进程的状态

文章目录

  • 一、 进程三态模型
  • 二、 进程五态模型(引入挂起)
  • 三、 进程控制块(PCB)
  • 四、 练习

一、 进程三态模型

进程在生命周期中会经历以下三种基本状态:

状态含义转换条件
就绪(Ready)已获得除CPU外的所有资源,等待CPU调度创建后、时间片用完、被抢占
运行(Running)正在CPU上执行被调度器选中
阻塞(Waiting/Blocked)等待某事件(如I/O完成)请求资源/事件未满足

状态转换图:

  • 就绪 → 运行:进程被调度。
  • 运行 → 就绪:时间片用完或被更高优先级抢占。
  • 运行 → 阻塞:请求I/O或等待事件。
  • 阻塞 → 就绪:等待的事件完成。

二、 进程五态模型(引入挂起)

为适应虚拟内存和资源管理,增加:

  • 挂起就绪:进程在外存中,但可被调度。
  • 挂起阻塞:在外存中等待事件。

三、 进程控制块(PCB)

PCB是进程存在的唯一标志,也是操作系统管理和调度进程的核心数据结构。

  • 每个进程有一个PCB,包含:

    • 进程标识符(PID)
    • 程序计数器、寄存器
    • 进程状态
    • 优先级
    • 内存指针、I/O状态等
  • PCB 的组织方式
    操作系统如何管理成千上万个PCB?主要有两种方式:
    链接方式:将具有同一状态的PCB链接成一个队列。例如:就绪队列、阻塞队列。
    索引方式:建立索引表(就绪索引表、阻塞索引表),记录PCB在内存中的地址。

四、 练习

题目1:某进程在运行过程中请求等待I/O操作,则该进程的状态变化是( )。

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

答案:B

解析:进程在运行时请求I/O,若I/O不能立即完成,则进入阻塞状态。

题目2:下列关于进程状态的叙述中,正确的是( )。

A. 进程从阻塞状态只能转换为运行状态
B. 进程从运行状态只能转换为阻塞状态
C. 进程从就绪状态只能转换为运行状态
D. 进程从阻塞状态只能转换为就绪状态

答案:D

解析:阻塞状态只能先转换为就绪状态,再被调度为运行状态。运行状态可以转为就绪(时间片完)或阻塞(I/O)。就绪状态只能转为运行。

题目3:下列哪种情况会导致进程从运行状态变为就绪状态( )。

A. 进程执行了I/O操作
B. 进程的时间片用完
C. 进程等待信号量
D. 进程创建子进程

答案:B

解析:时间片用完时,操作系统剥夺当前进程CPU,将其放回就绪队列。I/O操作和等待信号量会导致运行→阻塞,创建子进程通常不影响当前进程状态。

题目4:下列关于进程状态的叙述中,错误的是( )。
A. 进程从阻塞状态只能转换为就绪状态
B. 进程从运行状态只能转换为阻塞状态或就绪状态
C. 进程从就绪状态只能转换为运行状态
D. 进程从运行状态可以直接转换为终止状态

答案:B

解析:运行状态可以转换为:
就绪(时间片用完/抢占)
阻塞(请求资源/事件)
终止(进程执行结束/异常退出)。
因此,B选项“只能转换为阻塞或就绪”是错误的,忽略了终止状态。

题目5:进程在挂起阻塞状态时,其所等待的I/O事件已完成。操作系统应将该进程转换为( )。
A. 运行
B. 就绪
C. 挂起就绪
D. 阻塞

答案:C

解析:挂起阻塞状态的进程位于外存。当等待的事件发生时,进程不能直接进入就绪(因为还在外存),而是先变为挂起就绪。只有被激活(解挂)后,才会进入真正的就绪队列。

题目6:下列选项中,不可能导致进程从运行状态直接转换到挂起就绪状态的是( )。
A. 操作系统内存紧张,将当前进程换出
B. 用户请求暂停该进程
C. 进程执行了I/O操作且I/O设备忙
D. 父进程主动挂起子进程

答案:C

解析:A、B、D 都可以直接让运行态进程被挂起(先剥夺CPU,再换出内存)。
C 执行I/O且设备忙,会进入阻塞态,而不是直接挂起。

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

终极Total War模组开发工具:Rusted PackFile Manager完整教程

终极Total War模组开发工具:Rusted PackFile Manager完整教程 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: http…

作者头像 李华
网站建设 2026/4/28 10:09:14

大恒工业相机 Windows 从零配置Python3.14环境 运行官方例程

大恒工业相机 Windows 从零配置Python3.14环境 运行官方例程一、前言二、第一步:下载并安装Python(电脑未安装的情况)1. 下载Python安装包2. 安装Python及必要的依赖(关键步骤,必看)3. 验证Python是否安装成…

作者头像 李华
网站建设 2026/4/28 10:08:12

虾这么好吃,要是猪一样大该多好

有人说,虾小得像个被丢在海里的宝箱,偏偏这个宝箱里满载着大自然的巧思,不断挑战着人类的味蕾。它没有猪一样庞大的身躯,没有牛羊的庞大碳排,没有鸡鸭的繁殖压力,但它却以自身的精致、灵巧和极具张力的生存…

作者头像 李华
网站建设 2026/4/28 10:07:50

3个实战技巧:免费激活VMware Workstation Pro 17的终极解决方案

3个实战技巧:免费激活VMware Workstation Pro 17的终极解决方案 【免费下载链接】VMware-Workstation-Pro-17-Licence-Keys Free VMware Workstation Pro 17 full license keys. Weve meticulously organized thousands of keys, catering to all major versions of…

作者头像 李华
网站建设 2026/4/28 9:59:46

别再写Service地狱了!用DDD重构我的项目(3)

仓储,封装持久化数据Repository(仓储)模式是一种设计模式,它用于将数据访问逻辑封装起来,使得领域层可以通过一个简单、一致的接口来访问聚合根或实体对象。这个模式的关键在于提供了一个抽象的接口,领域层…

作者头像 李华
网站建设 2026/4/28 9:57:30

Yew函数式编程:不可变数据和纯函数终极指南

Yew函数式编程:不可变数据和纯函数终极指南 【免费下载链接】yew Rust / Wasm framework for creating reliable and efficient web applications 项目地址: https://gitcode.com/gh_mirrors/ye/yew Yew是一个基于Rust和WebAssembly的现代Web框架&#xff0c…

作者头像 李华