Linux 进程管理:状态、优先级与调度核心解析

发布时间:2026/9/9 2:28:12

Linux 进程管理:状态、优先级与调度核心解析 文章目录1. 进程状态1.1 操作系统中状态的说明1.2 什么叫做阻塞1.3 什么叫挂起2. 具体谈Linux操作系统中的进程状态2.1 Linux 的七种进程状态2.2 僵尸进程Zombie2.3 孤儿进程Orphan3. 进程的优先级3.1 优先级是什么3.2 为什么要有优先级3.3 查看与修改进程优先级1. 进程状态1.1 操作系统中状态的说明运行、阻塞、挂起1.2 什么叫做阻塞从现象入手等待硬件就绪。硬件准备就绪谁最先知道操作系统操作系统就是硬件的管理者先描述再组织。阻塞和运行的本质是看task_struct在谁提供的队列中。Linux中第一个用户态进程是init/systemdPID1。阻塞不止等待硬件还包括等待锁、等待其他进程释放资源等。1.3 什么叫挂起task_struct在内存里因为内存资源不足导致进程对应的数据或者代码被交换到swap分区这种状态叫做挂起。安装操作系统的盘都要留一个分区swap分区用于内存扩展。swap分区和我们的磁盘分区一样只是被隐藏了我们看不见。现在使用内存还要涉及换入和换出。过度swap会导致系统变慢。swap分区存在的本质就是时间换空间。但是swap不建议太大太大会导致依赖swap过度swap会导致分区被占满系统变慢。进程都处于运行状态剩下的还没调度内存不够依旧换入到磁盘空间就会出现运行挂起。如果还是不行Linux OS就会选择性地杀掉一些进程。2. 具体谈Linux操作系统中的进程状态进程状态用位图表示2.1 Linux 的七种进程状态RRunning等同于运行就绪状态。SSleeping可中断休眠浅度睡眠等同于阻塞状态。向进程发送信号也可以杀掉一个进程。kill-9[进程号]-9就是信号的意思。前台进程往往状态后面带加号。前后台进程 – TODOkill -9 发送信号STAT后面带的是前台进程否则是后台进程DDisk SleepLinux特有的状态不可中断休眠深度睡眠和磁盘有关。等待磁盘IO的过程中不可能被OS杀掉只能等磁盘返回信号。什么情况下会遇到D状态进程进行大量的I/O操作时。TStopped暂停状态触发某种信号让其自己暂停下来需要人唤醒。kill-lkill-19[进程号]# 暂停进程kill-18[进程号]# 继续进程后台进程用符号启动前台进程可以从键盘获取输入后台进程没有办法从键盘获取输入。tTracing Stop追踪暂停。gdb调试时父进程向子进程发送信号让子进程暂停运行从而达到逐过程执行的效果。XDead进程死亡OS回收PCB进程彻底消失。2.2 僵尸进程ZombieZZombie僵尸状态。进程创建之初是为了解决问题的当进程退出时只保留进程的task_struct让父进程或OS获取子进程的退出数据。为什么要有Z状态进程退出了退出信息是什么main函数的返回值或收到的信号值进程退出了退出信息保存在哪里进程自己的task_struct结构体中检测Z状态进程回收Z状态进程本质是在做什么获取数据让task_struct转为X并释放掉具体怎样回收谁来回收父进程通过系统调用wait/waitpid由OS来回收如果父进程不回收子进程呢该进程将永远处于Z状态task_struct不会被释放永远占据内核资源空间这种情况就叫做资源泄漏。所以子进程必须被回收new出来的空间如果对应的进程结束了内存泄漏的问题还在吗不在了。用户层申请的内存是归操作系统管理的进程结束时OS会回收所有用户态内存。但是如果进程是常驻进程守护进程它不结束内存泄漏就会持续累积最终可能导致系统OOM内存耗尽。所以常驻进程中必须格外注意内存泄漏问题。有些软件如服务器程序、守护进程是常驻内存的你不退出它就不退出。这种常驻在内存中的进程叫做常驻进程。常驻进程是不结束的所以如果不释放内存就会存在内存泄漏。2.3 孤儿进程Orphan孤儿进程如果父进程先于子进程退出子进程就成为孤儿进程会被系统的init进程PID1或systemd收养由init进程负责回收。3. 进程的优先级3.1 优先级是什么优先级 VS 权限权限决定进程“能不能”获取某种资源如root权限与普通用户权限。优先级在进程已经具备获取资源权限的前提下决定获取该资源的“先后顺序”。调度队列的本质就是确定优先级。3.2 为什么要有优先级CPU是稀缺资源设置优先级是为了决定进程获取CPU等资源的先后顺序从而保证系统的高效运行和关键任务的及时响应。3.3 查看与修改进程优先级通过以下命令可以查看进程的优先级信息ps-l输出结果中的PRI列表示进程的实际优先级NInice值列表示优先级的修正值。nice值的范围-20 ~ 19共40个等级。nice值越小优先级越高nice值越大优先级越低。为什么是这个范围为什么不能随便改这是Linux内核的设计决策既保证了足够的调度粒度又防止普通用户过度抢占系统资源。普通用户只能调大nice值降低自己进程的优先级只有root用户才能将nice值调小到-20提高优先级。进程优先级的变化范围是多少old pri是什么Linux中实际调度优先级 ≈ 基础优先级 nice值。基础优先级通常为80所以实际PRI范围约为 60 ~ 99。old pri指的是进程在被修改之前的旧优先级。高频率修改优先级会导致调度器频繁重新计算和排队增加系统开销。欢迎大家批评指正
延伸阅读

更多相关文章

2026/9/9 13:43:52

Next.js全栈开发实战:从渲染模式到生产部署完整指南

如果你正在学习 Next.js,可能会发现官方文档虽然全面,但内容分散,缺乏一条清晰的"从入门到部署"的完整路径。很多教程只讲基础配置,却很少告诉你实际项目中如何组织代码、处理错误、优化性能,以及最终如何部…

2026/9/9 17:14:58

混合变量特征工程实战:编码、缩放与Pipeline完整指南

很多人在机器学习入门和期末项目里都会遇到同一个现象:打开一张数据表,里面既有年龄、收入、房价这样的数值列,又有性别、城市、职业这样的文本列,这两类变量混在同一张表里。如果直接把这张表丢进模型,要么报错&#…

2026/9/9 17:14:58

移动端H5整套源码工程复盘:适配、免登录与WebView踩坑指南

简介:这是一套面向移动端电商场景的H5页面完整源码,适合前端开发者、移动电商从业者及学习者参考,可用于快速搭建商城类页面并理解移动端开发规范。资源共134个文件,压缩包大小2.07MB,包含34个HTML页面、72张PNG图片、…

2026/9/9 17:14:58

Vue 3 + OpenLayers 大屏可视化模板:地图适配到图表封装的完整实践

简介:数据可视化是大屏项目的核心,而地图往往是最难处理的一环。在政企数字化场景,大屏不仅要展示指标,还要呈现地理信息,但底图风格、图层性能、屏幕适配等问题常让开发陷入泥潭。OpenLayers作为专业地图引擎&#xf…

2026/9/9 17:14:58

Vue3 + Element Plus 实现聊天列表:悬停操作、选中高亮与安全删除

做聊天类应用最头疼的交互细节是什么?十个人里至少有八个人会说是列表项的操作逻辑。用户的消息越来越多,会话越堆越长,如果所有操作都堆在明面上,界面会被撑得乱七八糟;如果把操作藏得太深,用户又找不到删…

2026/9/9 17:14:58

基于虹软ArcFace的动态人脸识别Android实现:从Camera2到画框

简介:一份面向移动与桌面开发者的虹软动态人脸识别工程资源,基于 ArcSoft 技术实现了摄像头实时视频流中的人脸检测、追踪与画框识别,尤其适合需要快速接入实时识别能力的应用开发者。压缩包共 137 个文件,约 65.77MB,…

2026/9/9 17:09:58

组合模式实战:从文件系统到Android ViewGroup的树形结构设计

组合模式在GoF那本《设计模式》里的分类属于结构型模式。我第一次读它的时候,觉得名字起得玄乎,认真翻了几遍才反应过来——这不就是在处理"树形结构"吗。说白了,组合模式就是为了让叶子节点和容器节点能用同一种方式去调用&#x…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/9 0:00:48

MHS模型硬件标准:让大模型像调用软件一样控制物理设备

让Claude真正看着显微镜说“这个细胞形态不太对”,或者让大模型自己调一版机械臂的运动轨迹,这事儿听上去已经很接近科幻片了。但你真上手试一次就会发现,模型不缺智商,缺的是一个能插进显微镜、机械臂、激光控制器里的“通用插座…

2026/9/9 0:00:48

AI五大核心方向详解:从机器学习到大模型,零基础转行选哪条?

会有人告诉我,他想转行学AI,但打开招聘网站一看直接傻眼:机器学习、深度学习、自然语言处理、计算机视觉、大模型应用……满屏都是这些词,好像每个都会一点,又好像每个都离自己很远。还有人上来就问“学Python还是学Ja…

2026/9/9 0:00:49

从50行最小循环到生产级AI引擎:工程化改造全解析

直接说干货。这一章我写的不是那种"hello world跑通某个模型"的教程,而是把AI引擎当做一个真正要上线、要被人调用、要扛流量的系统来聊。从最初只有50行的最小循环,到能够承载生产流量的AI引擎,中间差的不是代码量,而是…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码