Linux - 进程生命周期

本文介绍了Linux操作系统的进程生命周期,详细阐述了进程的运行、等待、睡眠等状态,并解析了task_struct数据结构中定义的进程状态,包括运行、可中断睡眠、不可中断睡眠、暂停和僵死状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文参考了【深入Linux内核架构】

Linux操作系统属于多任务操作系统,系统中的每个进程能够分时复用CPU时间片,通过有效的进程调度策略实现多任务并行执行。而进程在被CPU调度运行,等待CPU资源分配以及等待外部事件时会属于不同的状态。下图描述了进程之间的状态关系:

 

进程的三种基本状态:

运行:该进程此刻正在执行

等待:进程能够运行,但没有得到许可,因为CPU分配给另一个进程。调度器可以在下一次任务切换时选择该进程。

睡眠:该进程正在睡眠无法运行,因为它在等待一个外部事件。调度器无法在下一次任务切换时选择该进程。

 

一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。

 

(1) 就绪→执行

处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。

 

(2) 执行→就绪

处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完或更高优先级的进程抢占而不得不让出处理机,于是进程从执行状态转变成就绪状态。

 

(3) 执行→阻塞

正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

 

(4) 阻塞→就绪

处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

 

(5) 运行→终止

 

程序执行完毕,撤销而终止

 

 

现在从理论回到实际,在Linux内核,涉及进程和程序的所有算法都围绕一个名为tas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值