Linux 进程:进程状态
目录
- 一、进程状态
- 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
作用:查看进程相关信息
参数含义:
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- STIME:进程的开始时间
- TTY:终端号
- TIME:进程执行的总时间
- CMD:运行的程序
2.ps-aux
作用:查看进程相关信息
参数含义:
- USER:运行这个程序的用户
- PID:进程ID
- %CPU:CPU使用率
- %MEM:内存使用率
- VSZ:虚拟内存使用
- RSS:物理内存使用
- TTY:终端号
- STAT:进程的状态(如休眠态、运行态、僵死态)
- START:进程的开始时间
- TIME:进程执行的总时间
- COMMAND:运行的程序
查看指定进程的信息:
3.top
作用:查看cpu的使用率
4.kill
- kill 进程ID {作用:杀死此进程}
- kill -9 进程ID {作用:强制杀死该进程}
相关文章:

Linux 进程:进程状态
目录一、进程状态1.简单分类2.详细分类(1)运行态(2)休眠态[1]可中断休眠态[2]不可中断休眠态(3)停止状态(4)死亡状态(5)僵死状态二、特殊进程1.僵尸进程2.孤儿…...

应用程序性能优化方案,web服务五级缓存优化,服务器性能优化...
winfrom 全局异常捕获WPF 全局异常捕获Asp.Net全局异常捕获MVC 全局异常捕获AspNetNetCore 全局异常捕获一级缓存html/css/js 前端缓存二级缓存Asp.Net MVC AspNetCore 客户端缓存设置三级缓存服务端缓存四级redis 数据库缓存服务端缓存五级sqlserver 数据库缓存设置分布式缓存…...

云计算简介
本文为copy他人编写的文档,由于不确认作者名称,故无法标记来源(实际来源是群pdf文档),暂时发文为原创,因为无法贴出原文链接! 云原生的前世今生 随着公有云和私有云的广泛部署,云计…...

两个适配器网络冲突,限制访问特定网址
两个适配器网络冲突,限制访问特定网址说明命令说明说明 因为工作需要,有线网络访问局域网服务器,限制特别策略访问,如禁止远程。此时如果想要远程,在连接手机热点就可以,但由于两个网络的存在优先级。就出…...

电子科技大学 高级计算机系统结构 考试回忆
首先题量不算小,因此没有太多时间把题都记出来,但是叙述一下题的类型希望能帮到以后选了这门课大家,在网上确实没有搜到这门课有关考试的任何资料,所以我也没啥参考全凭记忆和老师的PPT结合。复习的时候老师给了大纲,就…...

【设计模式】18.观察者模式
概述 定义: 又被称为发布-订阅(Publish/Subscribe)模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能…...

软测入门(一)测试理念及基础知识
软测入门理念 软件的分类 按层次划分:系统软件、应用软件按组织划分:商业软件、开源软件按结构划分:单机软件、 软件缺陷 由来 Grace Hopper发明Cobol计算机语言,也是找出电脑程序中第一个bug的女程序员 BugDefect 定义 软…...

2022年“网络安全”赛项山东省菏泽市选拔赛任务书
2022年“网络安全”赛项山东省菏泽市选拔赛任务书 任务书 一、竞赛时间 共计3小时。 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段单兵模式系统渗透测试 任务一:Apache安全配置 任务二:数据分析-A 任务三:Windows操作系…...

LeetCode练习四:栈
文章目录一、 堆栈基础知识1.1 简介1.2 堆栈的顺序存储1.2.1 堆栈顺序存储基本描述1.2.2 堆栈顺序存储实现代码1.3 堆栈的链式存储1.3.1 堆栈的链式存储基本描述1.3.2 堆栈的链式存储实现代码二、 堆栈的基础应用2.1 堆栈基础题列表2.2 括号匹配问题2.2.1 有效的括号2.2.2 最长…...

【Python实战】爬虫教程千千万,一到实战全完蛋?今天手把手教你一键采集某网站图书信息数据啦~排名第一的竟是...(爬虫+数据可视化)
前言 一本本书,是一扇扇窗,为追求知识的人打开认知世界的窗口 一本本书,是一双双翅膀,让追求理想的人张开翅膀翱翔 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利,请移步至CSDN社区或文末…...

【数据结构】堆的详解
本章的知识需要有树等相关的概念,如果你还不了解请先看这篇文章:初识二叉树 堆的详解一、二叉树的顺序结构及实现1、二叉树的顺序结构2、堆的概念及结构二、堆的简单实现 (以大堆为例)1、堆的定义2、堆的初始化3、堆的销毁4、堆的打印5、堆的插入6、堆顶元素的获取7…...

New Bing怼人、说谎、PUA,ChatGPT已经开始胡言乱语了
最近,来自大洋彼岸那头的ChatGPT科技浪潮席卷而来,微软将chatGPT整合搜索引擎Bing开启内测后,数百万用户蜂拥而至,都想试试这个「百事通」。 赶鸭子上架,“翻车”了? 但短短上线十几天,嵌入了…...

简易计算器-课后程序(JAVA基础案例教程-黑马程序员编著-第十一章-课后作业)
【案例11-2】 简易计算器 【案例介绍】 1.案例描述 本案例要求利用Java Swing 图形组件开发一个可以进行简单的四则运算的图形化计算器。 2.运行结果 运行结果 【案例分析】 要制作一个计算器,首先要知道它由哪些部分组成,如下图所示: 一…...
chatGPT使用:询问简历和面试相关话题(持续更新中)
chatGPT使用:询问简历和面试相关话题 写一份Java简历,价值2万元包装上面的Java简历面试自我介绍面试简述稿包装简历的方法技巧如何进行良好的自我介绍如何写一份优秀的面试简述稿如何写一份优秀的简历如何写一份优秀的面试讲述稿如何提高面试录取率如何拿到offer写一份Java简…...
Java的 Stream流
Stream流?结合Lambda表达式,用于简化集合和数组操作的API。Stream流的一个小例子:创建一个集合,存储多个姓名,把集合中所有以"张"开头的长度为3的元素存储到一个新的集合并输出。List<String> namesne…...

FL Studio 21 中文正式版发布支持多种超个性化主题
万众期待的 FL Studio 21 版本正式发布上线,目前在紧锣密鼓的安排上线中,届时所有购买正版 FL Studio 的用户,都可以免费升级到21版! 按照惯例,本次新版也会增加全新插件,来帮助大家更好地创作。今天先给大…...

【微信小程序】-- 全局配置 -- window - 导航栏(十五)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &…...

Spring中最常用的11个扩展点
前言我们一说到spring,可能第一个想到的是 IOC(控制反转) 和 AOP(面向切面编程)。没错,它们是spring的基石,得益于它们的优秀设计,使得spring能够从众多优秀框架中脱颖而出。除此之外…...
网络协议丨HTTPS是什么?
我们都知道HTTP协议,那什么是HTTPS? 我们都知道,HTTP有两个缺点——“明文”和“不安全”仅凭 HTTP 自身是无力解决的,需要引入新的 HTTPS 协议。 由于 HTTP 天生“明文”的特点,整个传输过程完全透明,任…...
Anaconda常用命令总结,anaconda、conda、miniconda的关系
Anaconda、conda、miniconda的关系 Anaconda Anaconda 是一个用于数据科学,机器学习和深度学习的开源软件包管理系统,其中包括了许多流行的 Python 包和工具Anaconda主要用于科学计算和数据分析。 conda Conda 是 Anaconda 中的包管理器,…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

Unity UGUI Button事件流程
场景结构 测试代码 public class TestBtn : MonoBehaviour {void Start(){var btn GetComponent<Button>();btn.onClick.AddListener(OnClick);}private void OnClick(){Debug.Log("666");}}当添加事件时 // 实例化一个ButtonClickedEvent的事件 [Formerl…...