Linux操作系统 - 进程状态

本文介绍了Linux操作系统中进程的不同状态,包括R(运行)、S(睡眠)、D(磁盘休眠)、T(停止)、t(调试停止)、X(死亡)和Z(僵尸)。解释了各种状态的含义,如运行状态并不意味着进程一定在执行,而是准备执行或正在执行。睡眠状态通常表示进程在等待非CPU资源。D状态是不可中断的睡眠,常见于等待I/O操作。停止状态可通过信号控制,而僵尸状态则发生在子进程退出但父进程未读取其状态时。孤儿进程是指父进程退出后,子进程被1号进程领养的情况。

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

自己并没有学习过计算机操作系统这门课,而计算机操作系统里有关进程状态的知识点,是一种相对抽象的概念,它对于任何一个具体的操作系统中进程状态而言都是适配的,也使得我们理解这样的概念时很难理解,并且我也不知道这门课中都具体有哪些概念,只学到了几个,而学习的重点是Linux操作系统下进程的状态,明白了具体的状态之后,再去理解操作系统这门课中的概念时就有了映射的实际实例,会好理解很多。

进程状态本身也是PCB中的一个字段。


目录

操作系统:进程状态

Linux操作系统:进程的状态

R 运行状态(running)

S睡眠状态(sleeping)

D磁盘休眠状态(Disk sleep)

T停止状态(stopped)

t 停止状态(tracing stop) 

X死亡状态(dead)

Z(zombie)-僵尸状态,僵尸进程

孤儿进程


操作系统:进程状态

新建:指的是进程刚被创建好,还没有被CPU调度的状态,事实上,Linux下并没有这种状态,而操作系统中有此状态也是为了整体更加严谨,完善。

运行:进程的task_struct被CPU调度或者在CPU的runqueue(运行队列)中等待被调度,都称为运行态(另一种说法是,被CPU调度为运行态,在运行队列中是就绪态)

阻塞:等待非CPU资源就绪的状态,例1,比如要进行文件读取,在硬盘的执行队列中等待硬盘的响应,就是阻塞状态。 例2,scanf时等待键盘的输入,也是阻塞状态,其实这个的场景还是非常多的。

挂起:类似于阻塞,情景比较少见,比较极端。当内存不足时,OS会置换长期不运行的进程的代码和数据到磁盘,而内存中只留进程的PCB,此时进程被称为挂起状态。

退出:进程结束的状态。

上方的理解可能有偏差,不严谨等等问题。更清晰全面的理解需要后期不断的学习。


Linux操作系统:进程的状态

 上图是Linux内核源码中进程状态的示例,这够有说服力了吧....

R 运行状态(running)

并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。对应上方的运行态。

只运行死循环即可,但是前提是,循环内不可以有打印语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值