Linux进程状态及其相互转换

Linux中,进程有以下6中状态。

Linux系统中的进程主要有以下六种状态。

(1)TASK_RUNNING(可运行状态)。正在运行的进程或在可运行进程队列(run_queue)中等待运行的进程处于该状态。它实际上包含一般操作系统原理教材中所谓进程三种基本状态中的运行态就绪两种状态。

当CPU空闲时,进程调度程序只在处于该状态的进程中选择优先级最高的进程运行。Linux中运行态的进程可以进一步细分为3种:内核运行态、用户运行态和就绪态。

(2)TASK_INTERRUPTIBLE(可中断阻塞状态)。处于可中断阻塞状态的进程排成一个可中断阻塞状态进程队列,该队列中的阻塞进程在资源有效时,能被信号或中断唤醒进入到运行态队列。

(3)TASK_UNINTERRUPTIBLE(不可中断阻塞状态)。不可中断指的是进程不响应信号。处于不可中断阻塞状态的进程排成一个不可中断阻塞状态进程队列。该队列中的阻塞进程,不可被其他进程唤醒,只有被使用wake_up()函数明确唤醒时才能转换到可运行的就绪状态

(4)TASK_STOP/TASK_TRACED(暂停状态)。当进程收到信号SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU时就会进入暂停状态。可向其发送SIGCONT信号,让进程转换到可运行状态。

(5)TASK_DEAD-EXIT_ZOMBIE(僵死状态)。表示进程停止但尚未消亡的一种状态。此时进程已经结束运行并释放掉大部分资源,但父进程尚未收回其PCB。在进程退出时,将状态设为TASK_ZOMBIE,然后发送信号给父进程,由父进程再统计其中的一些数据后,释放它的task_struct结构。处于该状态的进程已经终止运行,但是进程还没有询问其状态

(6)TASK_DEAD-EXIT_DEAD(退出状态),处于此状态的进程即将被销毁,EXIT_ DEAD非常短暂,几乎不可能通过ps命令捕捉到。

Linux中进程的状态转换过程如下图所示:

可以使用ps命令查看进程在系统中的状态。在ps命令的显示结果中,5中字符分别代表5种不同的进程状态。

(1)R(TASK_RUNNING):可执行状态或运行状态

(2)S(TASK_INTERRUPTIBLE):可中断阻塞状态,可响应中断、接收信号(如SIGKILL)

(3)D( TASK_ UNINTERRUPTIBLE):不可中断阻塞状态,只能响应中断

(4)T( TASK_ STOPPED/ TASK_ TRACED):暂停状态或跟踪状态

(5)Z( TASK_ DEAD/EXIT_ZOMBIE):退出状态,进程成为僵尸进程

注:在状态字符后面如果带+(如S+),表示进程是前台运行,否则是后台运行。

Linux进程状态及其相互转换相关推荐

  1. 【Linux 内核】调度器 ① ( 调度器概念 | 调度器目的 | 调度器主要工作 | 调度器位置 | 进程优先级 | 抢占式调度器 | Linux 进程状态 | Linux 内核进程状态 )

    文章目录 一.调度器 0.调度器概念 1.调度器目的 2.调度器主要工作 3.调度器位置 4.进程优先级 5.抢占式调度器 二.Linux 内核进程状态 API 简介 三.Linux 进程状态 一.调 ...

  2. Linux进程状态解析之R、S、D、T、Z、X

    文章转载自:http://hi.baidu.com/shining_pc/item/21abcb32a4d2d484c3cf2950 Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程 ...

  3. Linux进程状态解析 之 R、S、D、T、Z、X (主要有三个状态)

    linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态. Linux进程状态:R (TASK_RUNNING),可执行状态. 只有在该状 ...

  4. Linux进程状态解析

    Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有 不同的状态. Linux进程状态:R (TASK_RUNNING),可执行状态. 只有在该 ...

  5. Linux下进程状态转换,Linux进程状态转换图

    Linux进程状态 Linux内核中的进程状态 ◆运行状态(TASK_RUNNING) 指正在被CPU运行或者就绪的状态.这样的进程被成为runnning进程.运行态的进程可以分为3种情况:内核运行态 ...

  6. linux进程状态详解

    Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态. Linux进程状态:R (TASK_RUNNING),可执行状态 只有在该状态 ...

  7. 【Linux操作系统】Linux进程状态和两个特殊进程

    文章目录 一.一套普适性的进程状态理论 1.运行 2.阻塞 3.挂起 二.一套具体的Linux进程状态 1.R-运行 2.S-睡眠 3.T-暂停 5.t-被追踪 三.僵尸进程和孤儿进程 1.僵尸进程 ...

  8. 操作系统原理,进程的基本状态,运行态,就绪态,等待态与转换模型,进程的其他状态,创建,终止,挂起与转换模型,Linux进程状态模型示例

    操作系统原理,进程的基本状态,运行态,就绪态,等待态与转换模型,进程的其他状态,创建,终止,挂起与转换模型,Linux进程状态模型示例 一.进程的三种基本状态: 运行态,就绪态,等待态 1.运行态: ...

  9. Linux 进程状态D Disk Sleep

    Linux进程状态:S (TASK_INTERRUPTIBLE),可中断的睡眠状态 处于这个状态的进程因为等待某某事件的发生(比如等待socket连接.等待信号量),而被挂起.这些进程的task_st ...

最新文章

  1. 集群(二)——LVS-DR-Keepalived
  2. vsc 搜索特定代码_特定问题的通用解决方案:何时编写代码以及何时编写代码...
  3. IDEA项目找不到浏览器报错的情况
  4. 如何自学python-零基础如何自学成为Python高手?
  5. Linux内核dev_set_drvdata()和dev_get_drvdata()存储自定义结构体用法
  6. Redis 6.0 源码阅读笔记(11) -- 主从复制 Slave 节点流程分析
  7. docker学习3-虚拟网络模式
  8. 电子科技大学《图论及其应用》复习总结--第六章 平面图
  9. 大漠插件7.2127
  10. 如何做好数据分析师的职业规划?
  11. [Matlab] 单次测量的中误差、算数平均值的中误差、加权求最或然值、函数拟合、莫迪图的计算实例
  12. 数据仓库架构以及多维数据模型的设计
  13. 徙步藏东南不是江南胜似江南
  14. 计网实验-1_Cisco Package Trace:Basic switch setup
  15. 微软宣布 IE 浏览器将于 6 月 16 日正式退役,你对它有哪些回忆?
  16. 网页设计中的灰色调配色技巧
  17. 钉钉新上线的「文字表情」功能--原来消息还可以这么回!
  18. 缺少dll文件怎么办?修复dll文件的多种方法
  19. php 经纬度范围计算器,经纬度距离角度计算器|经纬度距离角度计算器(geography)下载v2.1 免费版 - 欧普软件下载...
  20. 蓝桥杯 PREV-43 拉马车(试题解析)

热门文章

  1. CSS实例(一):漂亮的表格样式(使用CSS样式表控制表格样式)
  2. TM1638快速开发教程(基于正点原子mini板stm32f103rc)
  3. C语言,练习8.9 n*n阶矩阵对角线元素之和
  4. F - Nastya and Door
  5. Flask项目实战——6—(前台用户模型、前台登录注册、图形验证码、手机短信验证码、添加表单验证短信验证码请求)
  6. JavaScript实现拖动图片到指定位置验证码
  7. Caffe-Ristretto源码解读
  8. C中的 feof() 和 EOF
  9. JQuery - 反向选择器
  10. EMC文件服务器,emc存储服务器