操作系统(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)终止。

相关推荐
skywalk81632 小时前
阿里云服务器FreeBSD新系统从登录、配置到升级:从14.1升级到FreeBSD 14.3 Release
linux·服务器·阿里云·freebsd
草莓熊Lotso2 小时前
Linux 基础开发工具入门:软件包管理器的全方位实操指南
linux·运维·服务器·c++·人工智能·网络协议·rpc
喜欢吃燃面2 小时前
Linux:make自动化和实战演练
linux·学习
顾安r3 小时前
11.8 脚本网页 推箱子
linux·前端·javascript·flask
___波子 Pro Max.4 小时前
Linux source命令详解与应用场景
linux
橘子134 小时前
Linux网络基础(一)
linux·网络·arm开发
你想考研啊7 小时前
linux安装jdk和tomcat和并自启动
java·linux·tomcat
习惯就好zz8 小时前
WSL2 安装Ubuntu卡在安装进度0%无响应问题解决
linux·windows·ubuntu·wsl·wsl2
躲猫猫的喵喵10 小时前
Ubuntu2204降内核版本
linux·运维·服务器·ubuntu