Linux 进程:进程状态

news2025/1/11 9:02:41

目录

  • 一、进程状态
    • 1.简单分类
    • 2.详细分类
      • (1)运行态
      • (2)休眠态
        • [1]可中断休眠态
        • [2]不可中断休眠态
      • (3)停止状态
      • (4)死亡状态
      • (5)僵死状态
  • 二、特殊进程
    • 1.僵尸进程
    • 2.孤儿进程
    • 3.守护进程
  • 三、进程状态相关指令
    • 1.ps-ef
    • 2.ps-aux
    • 3.top
    • 4.kill

一、进程状态

  进程就是运行中的程序,而运行中的程序也是有着多种状态的。进程状态的作用就是告诉操作系统怎样去调度进程可以让程序更好的运行,可以更充分的利用系统的资源

  在了解进程状态前首先要明白:程序在运行时是需要各种资源的,比如输入输出设备等资源。如果这些资源没有准备到位,这个进程就不能继续往下执行,就需要等待资源的到来。

  比如我需要打印一份资料,打印机就是一种资源,但此时打印机正在被其他程序使用,所以我就要等其他程序使用完我才可以使用。

1.简单分类

传统的操作系统概念对于进程状态的分类较为简单,分为三类。:

  • 运行态
  • 就绪态
  • 阻塞态

运行态:

 这个状态的进程正在CPU上运行

就绪态:

 进程此时已经将自己需要的资源都拿到手了,现在只需要等待时间片的到来,拿到时间片就可以直接运行。

阻塞态:

 这个进程如果处于阻塞态,代表不可以被调度运行。通常是由于资源准备不充分,所以进入阻塞态。比如上文提到的打印机:我需要打印机资源,可是此时打印机被占用了,因此我的资源准备不充分,就会陷入阻塞状态。

2.详细分类

 与传统的操作系统定义不同,Linux对于进程的状态划分的更细致,主要分为五种状态:

  • 运行态
  • 休眠态
    • 可中断休眠态
    • 不可中断休眠态
  • 停止状态
  • 死亡状态
  • 僵死状态

(1)运行态

  Linux的运行态包含了传统定义中的运行态和就绪态。也就是说,在Linux中这两类进程都属于运行态:

  • 正在CPU上运行的进程
  • 资源准备充足,等待时间片的进程

(2)休眠态

  Linux的休眠状态是指,进程需要等待某个事件发生后才可以继续运行,在等待的这段时间,进程干不了其他的事,因此需要休眠。

  要等待的某个事件其实就包括了我们之前提到过的资源。我需要使用打印机,但此时打印机资源被别人使用,因此我就需要先休眠,等到打印机资源空闲了,我再醒来去打印。

  而休眠态分为可中断休眠态不可中断休眠态

[1]可中断休眠态

  进程正在休眠,等待某个事件发生后,进程会醒来继续运行,但这个休眠是可以被打断的,遇到一些特别的事件会打断进程的休眠。

  比如我们在睡觉时,定了早上八点的闹钟,想着等到闹钟响了才起床。但是五点钟就有人打电话,打断了我们的休眠。

[2]不可中断休眠态

  进程正在休眠,等待某个事件发生后,进程才会醒来继续运行,并且这个休眠是无法被打断的。

  比如一个人突然因生病而昏迷,除非是得到医生的救治,否则是醒不过来的。所以这就是不可中断休眠,不可以被打断,除非等到特定事件(医生救治)发生。

(3)停止状态

  进程处于停止状态时可以被调度,但什么都不做

(4)死亡状态

  进程已经使用完毕了,所以让进程退出,并且把所进程占用的资源全部释放。(一个人去世后,把他埋葬,处理好他的后事)

(5)僵死状态

  进程使用完毕了,并且进程也退出了,但进程占用的资源没有被完全释放。(一个人去世后,没有将他埋葬,没有处理他的后事)

  因此处于僵死状态的进程我们称之为僵尸进程

二、特殊进程

 这里简单介绍三种特殊进程:

  • 僵尸进程
  • 孤儿进程
  • 守护进程

1.僵尸进程

(1)什么是僵尸进程?

  僵死状态的进程,进程退出了但是它的资源没有被完全释放,是待处理状态。

(2)僵尸进程产生的原因?

  一个进程如果退出了,它的pcb不会直接释放,因为进程的pcb保存了这个进程的退出原因,而这个退出原因是要交给父进程的,父进程收到这个退出原因后,就会处理子进程的后事,释放子进程的资源。

  因此这个进程退出前会通知父进程,告诉父进程自己要退出了,要记得给自己处理后事。但如果父进程没有收到子进程的通知,这个子进程的资源就一直处于没有完全释放的状态,就成了僵尸进程。

  这里注意一点,终端运行的指令或程序,父进程都是shell(命令行解释器)进程,这个进程的子进程一旦退出,就会及时处理。

(3)僵尸进程的危害?

  僵尸进程的资源一直没有被回收,就会造成资源泄露,占据的内存没有完全释放,就会占据内存空间。如果僵尸进程过多,占据的资源就会越来越多,系统可能就会崩溃。

(4)怎么处理僵尸进程?

  处理正常进程时,我们可以通过杀死进程来退出进程。可是僵尸进程是杀不死的,因为它已经死了,现在我们要做的就是释放它的资源,处理它的后事。

  上文提到了,进程之所以退出后不释放资源,是因为要保存退出原因给父进程。那么我们可以通过杀死僵尸进程的父进程来释放僵尸进程的资源。因为父进程都死了,僵尸进程的退出原因就没有必要再保存了,资源自然会被释放掉。

2.孤儿进程

  孤儿进程与僵尸进程相反,孤儿进程是父进程先于子进程退出。(父进程退出是不会影响子进程的)这样子进程就成为了孤儿进程,但是总得有个人管它,因此孤儿进程会被1号进程收养。当孤儿进程退出后,1号进程就会处理它的后事。

3.守护进程

  守护进程也被称为精灵进程,是一种特殊的孤儿进程,运行在后台(不占据终端),在后台进行任务处理的进程。

三、进程状态相关指令

1.ps-ef

作用:查看进程相关信息

ps-ef
参数含义:

  • UID:用户ID
  • PID:进程ID
  • PPID:父进程ID
  • STIME:进程的开始时间
  • TTY:终端号
  • TIME:进程执行的总时间
  • CMD:运行的程序

2.ps-aux

作用:查看进程相关信息

ps -aux
参数含义:

  • USER:运行这个程序的用户
  • PID:进程ID
  • %CPU:CPU使用率
  • %MEM:内存使用率
  • VSZ:虚拟内存使用
  • RSS:物理内存使用
  • TTY:终端号
  • STAT:进程的状态(如休眠态、运行态、僵死态)
  • START:进程的开始时间
  • TIME:进程执行的总时间
  • COMMAND:运行的程序

查看指定进程的信息:

查找指定进程

3.top

作用:查看cpu的使用率

top

4.kill

  • kill 进程ID {作用:杀死此进程}
  • kill -9 进程ID {作用:强制杀死该进程}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-枚举类的使用(详解)

枚举类的使用前言一、何为枚举类?二、自定义枚举类(JDK1.5之前)1、实现1.1 属性1.2 构造器2、代码演示三、用关键字enum定义枚举类(JDK 1.5)1、实现1.1 属性1.2 构造器2、代码演示四、Enum类的方法五、实现接口的枚举类…

GeoServer 存在 sql 注入漏洞

漏洞描述 GeoServer 是一个允许用户共享和编辑地理空间数据的开源软件服务器,支持 OGC Filter expression 和 OGC Common Query Language 语言,使用 PostGIS Datastore 作为数据库。PostGIS是PostgreSQL数据库的扩展程序,增加了数据库对地理…

HTMLCollection 和 NodeList 区别

Node 和 Element DOM 是一棵树&#xff0c;所有节点都是 NodeNode 是 Element 的基类Element 是其他 HTML 元素的基类&#xff0c;如 HTMLDivElement HTMLCollection 和 NodeList HTMLCollection 是 Element 的集合NodeList 是 Node 的集合 <body><p id"p1&qu…

什么是IP地址?

IP协议中还有一个非常重要的内容&#xff0c;那就是给因特网上的每台计算机和其它设备都规定了一种地址&#xff0c;叫做“IP 地址”。由于有这种地址&#xff0c;才保证了用户在连网的计算机上操作时&#xff0c;能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。…

堆叠和集群(详细的理论和实验)

随着企业的发展&#xff0c;企业网络的规模越来越大&#xff0c;这对企业网络提出了更高的要求&#xff1a;更高的可靠性、更低的故障恢复时间、设备更加易于管理等。传统的园区网高可靠性技术出现故障时切换时间很难做到毫秒级别、实现可靠性的方案通常为一主一备&#xff0c;…

前端一面react面试题指南

React 事件机制 <div onClick{this.handleClick.bind(this)}>点我</div>React并不是将click事件绑定到了div的真实DOM上&#xff0c;而是在document处监听了所有的事件&#xff0c;当事件发生并且冒泡到document处的时候&#xff0c;React将事件内容封装并交由真正…

2023年3月实时获取地图边界数据方法,省市区县街道多级联动【附实时geoJson数据下载】

首先&#xff0c;来看下效果图 在线体验地址&#xff1a;https://geojson.hxkj.vip&#xff0c;并提供实时geoJson数据文件下载 可下载的数据包含省级geojson行政边界数据、市级geojson行政边界数据、区/县级geojson行政边界数据、省市区县街道行政编码四级联动数据&#xff0…

【C语言进阶】指针进阶

今日所做之事勿候明天&#xff0c;自我所做之事勿候他人。 --歌德 目录 指针进阶(更深层次的理解): 一.字符指针 二.指针数组 ​三.数组指针 1.数组指针的定义: 2.&数组名和数组名: 3.数组指针的使用: 四.数组参数&#xff0c;指针参数 1.一维数组传参:…

好代码的五个特质

CUPID出自Daniel的一篇名为《CUPID—for joyful coding》的博文&#xff0c;即《CUPID-为了快乐编程》。CUPID是Composable/Unix philosophy/Predictable/Idiomatic/Domain based几个单词的缩写&#xff0c;有经验的同学一看就知道这是好代码的一些属性。知道Cupid这个单词的同…

软件测试3

一 路径 路径&#xff1a;写想要找到的资源位置。 1.相对路径&#xff1a;相对于当前html文件去找其他资源的方式 &#xff08;1&#xff09;同级查找&#xff1a;当前html和目标在同一级别目录中&#xff0c;语法&#xff1a;直接写资源的名字即可 &#xff08;2&#xff09…

林心如常驻《向往的生活》,周杰却陷地域黑,做人的差别太大了吧

十年前如果有人提起周杰&#xff0c;就算是不能如雷贯耳&#xff0c;最起码也是妇孺皆知&#xff0c;毕竟那时候他太有名气了。因为拍摄《还珠格格》&#xff0c;让他和林心如等人一起爆红&#xff0c;不过此后的林心如&#xff0c;却很少再有优秀作品问世。 而周杰却不一样&am…

CCNP350-401学习笔记(易错题合集)

CCNP350-401学习笔记&#xff08;1-50题&#xff09;_殊彦_sy的博客-CSDN博客CCNP350-401学习笔记&#xff08;2023.2.17&#xff09;https://blog.csdn.net/shuyan1115/article/details/129088574?spm1001.2014.3001.5502CCNP350-401学习笔记&#xff08;51-100题&#xff09…

Win10系统开始菜单无法点击解决方法分享

Win10系统开始菜单无法点击解决方法分享。有用户电脑一开机之后&#xff0c;就出现了开始菜单无法正常点击的情况。我们很多设置项都是通过开始菜单来进行开启的。那么这个功能无法点击了怎么办呢&#xff1f;接下来我们一起来看看以下的解决方法分享吧。 方法一&#xff1a; 1…

面试官:给你一段有问题的SQL,如何优化?

大家好&#xff0c;我是飘渺&#xff01;我在面试的时候很喜欢问候选人这样一个问题&#xff1a;“你在项目中遇到过慢查询问题吗&#xff1f;你是怎么做SQL优化的&#xff1f;”很多时候&#xff0c;候选人会直接跟我说他们在编写SQL时会遵循的一些常用技巧&#xff0c;比如&a…

【力扣(LeetCode)】【MySQL】【185.部门工资前三高的所有员工】

学习时间&#xff1a; 2023年3月1日 题目描述&#xff1a; 题解分享&#xff1a; # 作 者 : 繁 华 倾 夏# 力扣(LeetCode):185. 部门工资前三高的所有员工# MySQL 数据库selectd.Name as Department, e1.Name as Employee, e1.Salary fromEmployee e1joinDepartment d on …

数据结构初阶 -- 顺序表

数据结构初阶 链表的讲解 目录 一. 线性表 1.1 定义 1.2 特点 二. 顺序表 2.1 定义 2.2 代码 2.3 功能需求 2.4 静态顺序表的特点以及缺点 2.5 动态的顺序表 2.6 动态顺序表接口的实现 三. 代码 头文件 主文件 一. 线性表 1.1 定义 线性表&#xff08;linear li…

【算法】Tire字符串

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;或许会很慢&#xff0c;但是不可以停下&#x1f43e; 文章目录1.Trie的基本思想1.1什么是Trie1.2字符串条件1.3如何存储字符串1.4如何查找字符串2.Trie的代码实现2.1怎么用数组建树2.2完整代码1.Trie的基本思…

柔性电路板的优点、分类和发展方向

柔性电路板是pcb电路板的一种&#xff0c;又称为软板、柔性印刷电路板&#xff0c;主要是由柔性基材制作而成的一种具有高可靠性、高可挠性的印刷电路板&#xff0c;具有厚度薄、可弯曲、配线密度高、重量轻、灵活度高等特点&#xff0c;主要用在手机、电脑、数码相机、家用电器…

CSGO社区服搭建服务器架设游戏服务端教程

CSGO社区服搭建服务器架设游戏服务端教程 我是艾西&#xff0c;上一篇说了搭建CSGO服务器需要准备服务器以及安装好所需要的环境&#xff0c;那么今天说一下CSGO社区私人服务器怎么搭建游戏服务端 搭建CSGO服务器比较简单&#xff0c;Valve开发者社区wiki也给出了安装指导&…

仓库管理如何实现扫码出入库?

仓库实现扫描出入库管理具体应该怎么做&#xff1f;以下方参考模板为例&#xff0c;可以点击打开配合阅读&#xff1a; 参考模板&#xff1a;通用仓库管理&#xff08;官方&#xff09;① 库存卡设计&#xff1a; 此表单主要用于代替传统纸质库存卡的记录功能&#xff0c;货物…