进程的状态

进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型 中,进程状态分为三个基本状态,即就绪态,运行态,阻塞态。在五态模型中,进程分为新建态、就绪态,运行态,阻塞态,终止态。
1. 运行态:进程占有处理器正在运行。
2. 就绪态:进程具备运行条件,等待系统分配处理器以便运行。当进程已分配到除 CPU 以外的所有必要资源后,只要再获得CPU ,便可立即执行。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
3. 阻塞态:又称为等待 ( wait ) 态或睡眠 ( sleep ) 态,指进程不具备运行条件,正在等待某个事件的完成。(当等待事件完成时,并不是立即回到运行态,而是先变为就绪态。)
注意:当一个任务被阻塞时,它会释放所占用的 CPU 资源,使得其他进程能够获得执行的机会。
三态模型图如下:

4. 新建态:进程刚被创建时的状态,尚未进入就绪队列。
5. 终止态:进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。(保留的是内核区的数据,用户区的数据被删除了。)一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。( 就绪态和阻塞态也可以直接到终止态。 )
新建态直接进入终止态:
在一些特殊情况下,可能存在直接从新建态到终止态的情况,但这通常是异常情况或特殊设计的系统。以下是一些可能导致直接从新建态到终止态的情况:
**1. 错误或异常情况:**如果在任务创建过程中发生了严重错误或异常,系统可能会选择将任务直接置于终止态,而不进入就绪态或运行态。
2. **任务创建失败:**如果任务创建时出现问题,例如分配不到足够的资源或创建过程中发生了错误,系统可能会直接将任务置于终止态。
3. **特殊系统设计:**在一些特殊的操作系统或嵌入式系统中,可能存在一些自定义的任务生命周期设计,使得任务在创建后立即进入终止态。

五态模型图如下:

相关推荐
南境十里·墨染春水33 分钟前
C++ 笔记 友元(面向对象)
开发语言·c++·笔记
Kira Skyler1 小时前
kprobe函数入口时的汇编跳板执行流程与栈帧机制
linux·汇编
桌面运维家1 小时前
VHD/VHDX 数据守护:BAT位图校验与修复
linux·服务器·网络
pupudawang1 小时前
Linux下安装Nginx服务及systemctl方式管理nginx详情
linux·运维·nginx
零K沁雪1 小时前
Linux 内核遍历宏介绍
linux·内核
cqbelt1 小时前
Python 并发编程实战学习笔记
笔记·python·学习
淼淼爱喝水2 小时前
openEuler 下 Ansible 基础命令详解与实操演示2
linux·运维·windows
拾贰_C2 小时前
【Ubuntu | install | 安装软件】 Ubuntu软件安装多种方式以及卸载
linux·运维·ubuntu
·醉挽清风·3 小时前
学习笔记—Linux—信号阻塞&信号捕捉
linux·笔记·学习
Hello_Embed3 小时前
嵌入式上位机开发入门(四):TCP 编程 —— Client 端实现
网络·笔记·网络协议·tcp/ip·嵌入式