进程的状态

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

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

五态模型图如下:

相关推荐
序属秋秋秋几秒前
《Linux系统编程之开发工具》【编译器 + 自动化构建器】
linux·运维·服务器·c语言·c++·自动化·编译器
71-34 分钟前
C语言——函数声明、定义、调用
c语言·笔记·学习·其他
带土126 分钟前
32. 文件IO (3) 文件缓冲区与同步机制
linux
打不了嗝 ᥬ᭄1 小时前
传输层协议UDP
linux·网络·网络协议·udp
小涂1 小时前
在Linux(deepin-community-25)下安装MongoDB
linux·运维·mongodb
洛克大航海1 小时前
Linux 中如何查看系统的位数
linux·ubuntu
艾莉丝努力练剑1 小时前
【Linux基础开发工具 (一)】详解Linux软件生态与包管理器:从yum / apt原理到镜像源实战
linux·运维·服务器·ubuntu·centos·1024程序员节
illuspas1 小时前
Ubuntu 24.04下编译支持ROCm加速的llama.cpp
linux·ubuntu·llama
报错小能手1 小时前
C++笔记(面向对象)多态(编译时 运行时)
c++·笔记
七七七七071 小时前
【计算机网络】深入理解网络层:IP地址划分、CIDR与路由机制详解
linux·服务器·计算机网络·智能路由器