当前位置: 首页 > news >正文

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

目录

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:僵尸状态。下篇博客详细讲解。

 

进程状态查看 

ps aux / ps axj 命令

相关文章:

  • Servlet 之 Responses
  • 如何写好JS
  • 【1813. 句子相似性 III】
  • dp解最长回文子串
  • 故障分析 | cassandra 集群数据故障转移
  • jvm系列(1)--JVM和Java体系架构
  • Openresty记录笔记
  • 最容易理解的并查集详解
  • Kruskal重构树学习笔记(C++)
  • 电商erp迁往云端必须注意的5件事
  • docker-compose 搭建伪分布模式redis cluster集群
  • JS逆向之补环境过瑞数详解
  • 【PR #5 C】和平共处(整体二分)
  • 数组、对象操作方法
  • 2023-01-16 阿里SMS短信接口使用
  • 【linux kernel】Linux设备驱动模型 | bus
  • HTML的body元素
  • Spring Boot(五十四):SpringBoot事件监听机制
  • Fastdfs分布式文件系统原理浅析
  • 3-2存储系统-主存与CPU的连接外部存储器