操作系统(11)进程描述与控制--5种IO状态(1)

11.1进程定义

进程给出以下定义:

一个正在运行的程序。

一个正在计算机上执行的程序实例。

能分配给处理器并由处理器执行的实体。

也可以把进程当成由一组元素组成的实体,进程的两个基本元素是程序代码(可能被执行相同程序的其他进程共享)与和代码相关联的数据集。假设处理器开始执行该程序代码,且我们把这个执行实体称为进程。在进程执行时,任意给定一个时间,进程都可以惟一地被表征为以下元素:

  • 标识符:跟这个进程相关的惟一标识符,用来区别其他进程。

  • 状态:如果进程正在执行,那么进程处于执行态。

  • 优先级:相对于其他进程的优先级。

  • 程序计数器:程序中即将被执行的下一条指令的地址。

  • 内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享内存块的指针。

  • 上下文数据:进程执行时处理器的寄存器中的数据。

  • I/O 状态信息:包括显式的 I/O 请求、分配给进程的 I/O 设备(例如磁带驱动器)和被进程使用的文件列表等。

  • 审计信息:可包括处理器时间总和、使用的时钟数总和、时间限制、审计号等。

引用的被称为一个进程控制块,该控制块由操作系统创健和管理。

11.2进程状态

1. 运行态(Running)

  • 定义:进程正在占用 CPU,执行程序指令(对应你提到的 "执行态")。

  • 关键特征:同一时刻,单 CPU 系统中只有一个进程处于该状态;多 CPU 系统中,运行态进程数不超过 CPU 核心数。

  • 示例:打开的浏览器正在加载网页、视频播放器正在解码视频。

2. 就绪态(Ready)

  • 定义:进程已具备所有执行条件(如资源已分配、代码已加载),等待 CPU 调度。

  • 关键特征:进程排队等待 CPU,一旦获得 CPU,立即转为运行态。

  • 示例:同时打开的多个文档编辑器,除当前正在操作的一个(运行态),其余均处于就绪态。

3. 阻塞态(Blocked/Waiting)

  • 定义:进程因等待某类事件(如 I/O 完成、资源分配、信号)而暂停执行,即使有 CPU 也无法运行。

  • 关键特征:进程主动放弃 CPU,事件满足后需先转为就绪态,再等待调度。

  • 示例:进程发起磁盘文件读取请求后,等待数据传输完成的状态;进程等待键盘输入的状态。

4. 新建态(New)

  • 定义:进程刚被创建,操作系统尚未完成资源分配(如内存分配、标识符分配)的初始状态。

  • 关键特征:完成资源分配后,直接转为就绪态,等待 CPU 调度。

  • 示例:双击软件图标后,操作系统开始创建进程但未完成初始化的短暂状态。

5. 终止态(Terminated)

  • 定义:进程完成执行(正常退出)或因错误 / 信号终止(异常退出),操作系统回收其资源的状态。

  • 关键特征:进程不再参与调度,资源(内存、CPU、I/O 设备)被完全释放。

  • 示例:关闭文档编辑器后,进程执行完收尾操作(保存配置、释放内存)后的状态。

状态转换逻辑(核心流转路径)

  1. 新建态 → 就绪态:操作系统为新进程分配完内存、标识符等资源,进程具备执行条件。

  2. 就绪态 → 运行态:CPU 空闲时,调度器选择优先级最高(或按调度算法)的就绪进程,分配 CPU。

  3. 运行态 → 就绪态:时间片用完(如 CPU 分配给该进程的时间结束),或有更高优先级进程进入就绪态,当前进程被抢占 CPU。

  4. 运行态 → 阻塞态:进程执行过程中需要等待事件(如调用read函数读取文件、等待信号量),主动放弃 CPU。

  5. 阻塞态 → 就绪态:进程等待的事件完成(如文件读取成功、信号到达),由操作系统唤醒,转为就绪态等待调度。

  6. 运行态 → 终止态:进程执行完main函数(正常退出),或因错误(如段错误)、信号(如kill -9)终止。

相关推荐
啊啊啊迈 旋棍3 小时前
【译】TypeScript 7 测试版已在 Visual Studio 2026 18.6 Insiders 3 中默认启用
ubuntu·typescript·visual studio
ziguo11224 小时前
深入浅出 C/C++ 数据类型:从入门到踩坑
linux·c语言·c++·windows·visual studio
无垠的广袤4 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
会编程的土豆4 小时前
MySQL 入门:库、表、行、主键是什么
linux·数据库·网络协议·http
△曉風殘月〆5 小时前
如何在Linux中安装Qt开发环境
linux·运维·qt
不会就选b6 小时前
Linux之文件--fd,重定向
linux
三十岁老牛再出发6 小时前
07.26每日总结
linux·c语言·mysql
fengyehongWorld7 小时前
Linux update-alternatives命令
linux
雨的旋律20997 小时前
ubuntu2604
linux·运维·服务器
Eloudy7 小时前
ubuntu 22.04安装 cuda 12.8.2
linux·运维·ubuntu