linux 进程状态学习

文章目录

    • 一、进程状态及其含义
      • 1.1、9种状态
      • 1.2、6种状态
      • 1.3、两种方式关系

在 Linux 系统中,进程状态是指操作系统中每个进程在其生命周期中的当前状态。了解这些状态有助于系统管理员和开发人员监控和优化系统性能。

一、进程状态及其含义

目前进程状态分为2种,一种是9种状态,一种是6种状态

1.1、9种状态

  • 新建(New):
    • 描述:进程正在被创建但尚未准备好运行。
    • 特征:这通常是一个短暂的状态,进程快速进入就绪状态。
  • 就绪(Ready):
    • 描述:进程已准备好运行,等待被调度到 CPU 上执行。
  • 运行(Running, R):
    • 描述:进程正在 CPU 上执行,或者准备执行(在就绪队列中等待)。
    • 特征:进程在 CPU 时间片内执行,或者在调度器选择下一个要运行的进程时被选中。
  • 等待(Waiting)
    • 描述:进程因等待某些资源或事件(如I/O操作完成、信号量、锁等)而暂时无法继续执行。
    • 原因:
      • 等待用户输入。
      • 等待磁盘I/O操作完成。
      • 等待其他进程释放资源(如锁或信号量)。
    • 特点:
      • 进程不会占用CPU资源。
      • 当等待的事件发生后,进程会转为就绪状态。
  • 睡眠(Sleeping, S):
    • 描述:进程正在等待某个事件(如 I/O 操作)完成。
    • 特征:分为可中断睡眠(可以通过信号唤醒)和不可中断睡眠(通常等待硬件事件,不能被信号打断)。
  • 挂起(Suspended):
    • 描述:进程被挂起,通常是为了节省内存资源。
    • 特征:进程被移出内存,状态信息保存在磁盘上。
  • 停止(Stopped, T):
    • 描述:进程已被停止,通常是由于接收到停止信号(如 SIGSTOP),或者正在被调试。
    • 特征:进程不再执行,直到接收到继续信号(如 SIGCONT)。
  • 僵尸(Zombie, Z):
    • 描述:进程已终止,但其父进程尚未读取其退出状态。进程资源已释放,但进程表项仍然存在。
    • 特征:需要父进程调用 wait 系列函数来读取其退出状态并从进程表中移除。
  • 死亡(Terminated):
    • 描述:进程已完成执行或因错误被终止。
    • 特征:进程表中不再存在,所有资源已被回收。

1.2、6种状态

  • R (Running or Runnable)

    • 描述:进程正在运行或处于可运行状态。
    • 具体含义:
      • 进程正在 CPU 上执行。
      • 进程在就绪队列中,等待 CPU 调度。
    • 特点:
      • 进程正在使用 CPU 或准备使用 CPU。
      • 这是进程的活跃状态。
  • S (Interruptible Sleep)

    • 描述:进程处于可中断的睡眠状态。
    • 具体含义:
      • 进程在等待某些事件(如 I/O 操作完成、信号等)。
      • 可以被信号中断并唤醒。
    • 特点:
      • 进程不占用 CPU 资源。
      • 当等待的事件发生或收到信号时,进程会转为 R 状态。
  • D (Uninterruptible Sleep)

    • 描述:进程处于不可中断的睡眠状态。
    • 具体含义:
      • 进程正在等待某些内核操作完成(如磁盘 I/O)。
      • 不能被信号中断。
    • 特点:
      • 进程不占用 CPU 资源。
      • 这种状态通常持续时间较短,但如果硬件出现问题,进程可能会长时间卡在此状态。
      • 无法通过 kill 命令终止。
  • T (Stopped)

    • 描述:进程被暂停(挂起)。
    • 具体含义:
      • 进程被信号(如 SIGSTOP)暂停。
      • 可以通过信号(如 SIGCONT)恢复运行。
    • 特点:
      • 进程不占用 CPU 资源。
      • 常见于调试场景或用户手动暂停进程。
  • X (Dead)

    • 描述:进程已经终止,等待父进程回收。
    • 具体含义:
      • 进程执行完毕或被强制终止。
      • 进程的资源尚未被完全回收。
    • 特点:
      • 进程不占用 CPU 资源。
      • 这是一个瞬时状态,通常很难观察到。
  • Z (Zombie)

    • 描述:进程处于僵尸状态。
    • 具体含义:
      • 进程已经终止,但其退出状态尚未被父进程读取(通过 wait() 系统调用)。
      • 进程描述符仍然保留在系统中。
    • 特点:
      • 进程不占用 CPU 资源。
      • 僵尸进程无法被 kill 命令终止。
      • 如果父进程未正确处理,僵尸进程可能会一直存在,导致资源泄漏。
状态名称描述
RRunning or Runnable进程正在运行或可运行。
SInterruptible Sleep进程在等待事件,可被信号中断。
DUninterruptible Sleep进程在等待内核操作,不可被信号中断。
TStopped进程被暂停(挂起)。
XDead进程已终止,等待回收。

1.3、两种方式关系

状态含义对应状态
R (Running)进程正在运行或者在运行队列中等待运行(Running)和就绪(Ready)
S (Sleeping)进程正在等待某个事件(如 I/O 操作)完成。通常是短期等待阻塞(Blocked)或等待(Waiting)
D (Uninterruptible Sleep)进程在等待无法中断的事件,通常是等待 I/O 操作完成。进程不能被信号唤醒类似于挂起(Suspended),但更加具体化为不可中断的等待
T (Stopped/Traced)进程已停止,通常是由于接收到停止信号(如 SIGSTOP)或者正在被调试停止(Stopped)
X (Dead)进程已经终止,通常不会在正常的进程列表中看到这个状态,因为它已经被回收死亡(Terminated)
Z (Zombie)进程已经终止,但其父进程尚未读取其退出状态。进程仍然在进程表中,直到父进程处理其终止状态特殊的死亡状态(Terminated),需要父进程调用 wait 系列函数处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12905.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

并发编程 - 线程同步(三)之原子操作Interlocked简介

上一章我们了解了3种处理多线程中共享资源安全的方法,今天我们将更近一步,学习一种针对简单线程同步场景的解决方案——Interlocked。 在此之前我们先学习一个概念——原子操作。 01、原子操作 原子操作,其概念源于化学领域,原子…

0205算法:最长连续序列、三数之和、排序链表

力扣128:最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 class Solution {public int longestConsecutive(in…

JAVA_内部类

定义:在类的内部再定义一个类 特点:内部类可以直接访问外部类中的成员变量,即使是私有的。 外部类要想访问内部类中的成员变量,必须先创建内部类对象。 什么时候使用内部类:B类是A类的一部分,且B单独存在没…

2024 JAVA面试题

第一章-Java基础篇 1、你是怎样理解OOP面向对象 面向对象是利于语言对现实事物进行抽象。面向对象具有以下特征: 继承****:****继承是从已有类得到继承信息创建新类的过程 封装:封装是把数据和操作数据的方法绑定起来,对数据的…

视频融合平台EasyCVR无人机场景视频压缩及录像方案

安防监控视频汇聚EasyCVR平台在无人机场景中发挥着重要的作用,通过高效整合视频流接入、处理与分发等功能,为无人机视频数据的实时监控、存储与分析提供了全面支持,广泛应用于安防监控、应急救援、电力巡检、交通管理等领域。 EasyCVR支持GB…

2025最新软件测试面试大全

前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…

Hugging Face GGUF 模型可视化

Hugging Face GGUF 模型可视化 1. Finding GGUF files (检索 GGUF 模型)2. Viewer for metadata & tensors info (可视化 GGUF 模型)References 无知小儿,仙家雄霸天下,依附强者才是唯一的出路。否则天地虽大,也让你们无路可走&#xff0…

【C++】多态详细讲解

本篇来聊聊C面向对象的第三大特性-多态。 1.多态的概念 多态通俗来说就是多种形态。多态分为编译时多态(静态多态)和运⾏时多态(动态多态)。 编译时多态:主要就是我们前⾯讲的函数重载和函数模板,他们传不同类型的参数就可以调⽤不同的函数,通…

oracle 基础语法复习记录

Oracle SQL基础 学习范围 学习SQL基础语法 掌握SELECT、INSERT、UPDATE、DELETE等基本操作。 熟悉WHERE、GROUP BY、ORDER BY、HAVING等子句。 理解表连接: 学习INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN等连接方式。 掌握聚合函数: 熟悉…

配置@别名路径,把@/ 解析为 src/

路径解析配置 webpack 安装 craco npm i -D craco/craco 项目根目录下创建文件 craco.config.js ,内容如下 const path require(path) module.exports {webpack: {// 配置别名alias: {// 约定: 使用 表示src文件所在路径: path.resolve(__dirname,src)…

Vue前端开发-pinia之Actions插件

Store中的Actions部分,用于定义操作属性的方法,类似于组件中的methods部分,它与Getters都可以操作State属性,但在定义方法时,Getters是对State属性进行加工处理,再返回使用,属于内部计算;Action…

Java NIO详解

一、NIO简介 NIO 中的 N 可以理解为 Non-blocking,不单纯是 New,是解决高并发、I/O高性能的有效方式。 Java NIO 是Java1.4之后推出来的一套IO接口,NIO提供了一种完全不同的操作方式, NIO支持面向缓冲区的、基于通道的IO操作。 …

Java进阶笔记(中级)

-----接Java进阶笔记(初级)----- 目录 集合多线程 集合 ArrayList 可以通过List来接收ArrayList对象(因为ArrayList实现了List接口) 方法:接口名 柄名 new 实现了接口的类(); PS: List list new ArrayList();遍历…

21.2.2 保存

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 如果打开某个Excel文件修改后,需要保存到原文件或者用新的文件名保存,在 Excel.Application.Quit() 前使用W…

基于微信小程序的校园水电费管理平台设计与实现

目录 摘要 系统展示 技术介绍 MySQL数据库 Vue框架 代码实现 管理员实现登录后端代码 连接数据库 前端代码实现 获取源码 摘要 随着社会的发展,社会的方方面面都在利用信息化时代的优势。互联网的优势和普及使得各种系统的开发成为必需。 本文以实际运用…

基于springboot的体质测试数据分析及可视化设计

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 项目包含: 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…

离散时间傅里叶变换(DTFT)公式详解:周期性与连续性剖析

摘要 离散时间傅里叶变换(DTFT)是数字信号处理领域的重要工具,它能将离散时间信号从时域转换到频域,揭示信号的频率特性。本文将深入解读DTFT公式,详细阐述其具有周期性和连续性的原因,帮助读者全面理解DT…

Docker 安装详细教程(适用于CentOS 7 系统)

目录 步骤如下: 1. 卸载旧版 Docker 2. 配置 Docker 的 YUM 仓库 3. 安装 Docker 4. 启动 Docker 并验证安装 5. 配置 Docker 镜像加速 总结 前言 Docker 分为 CE 和 EE 两大版本。CE即社区版(免费,支持周期7个月)&#xf…

Mac mini m4本地跑大模型(ollama + llama + ComfyUI + Stable Diffusion | flux)

change log 2024-12-11 10:28(推荐重新观看) 针对绘画大模型的使用做进一步的详细操作(flux1dev) 见篇节(绘画大模型) 2024-12-10 更新了基础的chat大模型和绘画大模型的基础环境搭建。 安装chat大模型&am…

基于PLC的电热水器的水箱水位控制系统(论文+源码

1总体方案设计 本设计基于PLC的电热水器的水箱水位控制系统的整体结构如图2.1所示,系统采用S7-1200 PLC为控制器,可以实现电热水器水箱中的水位、水温检测,并且用户可以设定目标水位和水温,在自动模式下,当水位低于低…