Linux操作系统进程状态&&Linux内核进程状态

Linux进程有新建、运行、阻塞和挂起四种状态。运行态表示进程在执行或等待CPU。阻塞态是等待非CPU资源,如IO操作。挂起状态则是因为内存不足,进程数据被换出到磁盘。内核中,进程状态包括运行、睡眠、磁盘休眠、停止、死亡和僵尸状态,各有其特定含义和处理方式。
摘要由CSDN通过智能技术生成

目录

Linux操作系统进程状态

1. 新建

2. 运行

3. 阻塞

 4. 挂起

Linux内核进程状态

进程状态查看 

Linux操作系统进程状态

1. 新建

即字面意思,将进程资源(PCB)加载到内存,运行状态之前就是新建。

2. 运行

进程正在运行或者task_struct 结构体在队列中排队,就叫运行态。

3. 阻塞

阻塞状态:等待非CPU资源就绪解释如下:

        系统中存在各种资源,不仅仅是CPU中,还有网卡磁盘等外设,进程加载是可能还需要从外设中加载资源,CPU运转速度很快,但是其他外设速度相对来说很慢,当一个进程在CPU等待队列中很快把资源加载完,然后到外设等待队列去等着加载资源,由于外设速度很慢,此时进程就在阻塞队列等着,即阻塞状态。 

 4. 挂起

挂起状态:当内存不足的时候,OS会适当将一些长时间不执行的代码和数据置换到磁盘,这些进程此时的状态就是挂起!

Linux内核进程状态

        为了弄明白正在运行的进程是什么意思,我们需要知道进程的不同状态。一个进程可以有几个状态( 在 Linux内核里 ,进程有时候也叫做任务)。 下面的状态在kernel源代码里定义:
static const char * const task_state_array[] = {
    "R (running)",       /* 0 */
    "S (sleeping)",      /* 1 */
    "D (disk sleep)",    /* 2 */
    "T (stopped)",       /* 4 */
    "t (tracing stop)",  /* 8 */
    "X (dead)",          /* 16 */ 
    "Z (zombie)",        /* 32 */
};
  • R:运行状态(running: 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。(对应上面的运行态)
  • S:睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠即可以接收信号并响应)。(对应上面的阻塞状态)                                                                                                                  
  • D:磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态uninterruptible sleep),在这个状态的进程通常会等待IO的结束(不会被强制杀掉)。
  • T:停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。
  • X:死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态
  • Z:僵尸状态。这篇博客介绍:《僵尸状态->僵尸进程》

Linux下大部分时候我们查看进程状态时,会发现状态不是S,R这种,而是S+,R+这种:

这是因为带 +号 表示这是前端进程(即进程执行时不能有别的指令执行,比如输入ls命令没用,除非退出进程再执行ls),不带+号表示后端进程(即进程执行时可以执行其他注入ls指令) 

进程状态查看 

ps aux / ps axj 命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值