嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的
passion。准备好和我一起冲进代码的奇幻宇宙了吗?Let's go!
我的博客:yuanManGan
我的专栏:C++入门小馆 C言雅韵集 数据结构漫游记 闲言碎语小记坊 进阶数据结构 走进Linux的世界 题山采玉 领略算法真谛

进程优先级
为什么要存在优先级
答:进程多资源少
我们在食堂吃饭时,一般都需要排队,如果我们资源足够多,每个人一个厨师,那就不需要存在优先级了,但我们这个世界的真相就是需要优先级的,我们人数一直在进行优先级,你考大学时就是看你的成绩的优先级选大学,你选工作时,面试官就会把所有来面试的人进行优先级排序。
cpu资源分配的先后顺序,就是指进程的优先权(priority)。
- 优先权⾼的进程有优先执⾏权利。配置进程优先权对多任务环境的
linux很有⽤,可以改善系统性
能。 - 还可以把进程运⾏到指定的CPU上,这样⼀来,把不重要的进程安排到某个
CPU,可以⼤ 改善
系统整体性能。
查看系统进程
在linux或者unix系统中,⽤ps ‒l命令则会类似输出以下⼏个内容:

我们很容易注意到其中的⼏个重要信息,有下:
UID: 代表执⾏者的⾝份PID: 代表这个进程的代号PPID:代表这个进程是由哪个进程发展衍⽣⽽来的,亦即⽗进程的代号PRI:代表这个进程可被执⾏的优先级,其值越⼩越早被执⾏NI:代表这个进程的nice值
PRI and NI
- PRI也还是⽐较好理解的,即进程的优先级,或者通俗点说就是程序被CPU执⾏的先后顺序,此
值越⼩进程的优先级别越⾼ - 那NI呢?就是我们所要说的nice值了,其表⽰进程可被执⾏的优先级的修正数值
- PRI值越⼩越快被执⾏,那么加⼊nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice
- 这样,当nice值为负值的时候,那么该程序将会优先级值将变⼩,即其优先级会变⾼,则其越快被执⾏
- 所以,调整进程优先级,在Linux下,就是调整进程nice值
- nice其取值范围是-20⾄19,⼀共40个级别。
PRI vs NI
-
需要强调⼀点的是,进程的nice值不是进程的优先级,他们不是⼀个概念,但是进程nice值会影响到进程的优先级变化。
-
可以理解nice值是进程优先级的修正修正数据
查看进程优先级的命令
⽤top命令更改已存在进程的nice:
- top
- 进⼊top后按"r"‒>输⼊进程PID‒>输⼊nice值
注意: - 其他调整优先级的命令:nice,renice
- 系统函数:


降低优先级需要权限。
补充概念-竞争、独立、并行、并发
- 竞争性: 系统进程数⽬众多,⽽CPU资源只有少量,甚⾄1个,所以进程之间是具有竞争属性的。为
了⾼效完成任务,更合理竞争相关资源,便具有了优先级。 - 独⽴性: 多进程运⾏,需要独享各种资源,多进程运⾏期间互不⼲扰。
- 多个进程在多个CPU下分别,同时进⾏运⾏,这称之为并⾏
- 多个进程在⼀个CPU下采⽤进程切换的⽅式,在⼀段时间之内,让多个进程都得以推进,称
之为并发
分时操作系统和实时操作系统:
- 分时操作系统(Time-Sharing OS)
定义:将 CPU 时间划分为多个 "时间片",轮流分配给多个用户 / 进程使用,通过快速切换营造 "同时使用" 的假象。
核心目标:公平性、交互性、资源利用率,让多个用户能同时操作并快速获得响应。
典型例子:Linux、Windows、macOS(日常使用的桌面 / 服务器系统)。
分时系统的 "分时" 是为了 "多任务并发",让更多用户 / 程序共享资源;
- 实时操作系统(Real-Time OS, RTOS)
定义:能保证任务在严格规定的时间期限内(截止时间)完成,延迟可预测且可控。
核心目标:时效性、可靠性、可预测性,优先保证关键任务不超时,而非资源利用率。
典型例子:FreeRTOS、VxWorks、QNX(用于工业控制、自动驾驶、医疗设备等场景)。
从进程状态的 R/S/D/T/Z,到优先级的 Nice 值调整,再到分时与实时操作系统的调度逻辑,我们一步步揭开了 Linux 进程管理的神秘面纱!
这趟学习之旅,我们不仅掌握了实操技能:用ps/top查看状态与优先级,用kill/renice调整进程行为,还理解了底层逻辑 ------ 进程状态是 OS 对进程的 "分类管理",优先级是调度的 "资源分配规则",而分时 OS 的公平调度、实时 OS 的时效优先,正是这些规则的终极体现。
无论是日常排查 "进程无响应""僵尸进程",还是理解 "为什么有些任务能优先执行",这些知识都能成为你的 "技术武器"。编程的魅力,就在于从具体操作到抽象逻辑的层层拆解,从零散知识点到完整体系的逐步构建。
如果这篇文章帮你打通了进程管理的任督二脉,不妨点赞收藏,也欢迎逛逛我的专栏,后续还会分享更多 Linux 内核干货、编程技巧和实战案例~ 愿我们都能在代码的世界里,不断解锁新技能,探索更深层的技术本质,继续热血前行!💻✨

