走进Linux的世界:进程优先级

嘿,各位技术潮人!好久不见甚是想念。生活就像一场奇妙冒险,而编程就是那把超酷的万能钥匙。此刻,阳光洒在键盘上,灵感在指尖跳跃,让我们抛开一切束缚,给平淡日子加点料,注入满满的

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下采⽤进程切换的⽅式,在⼀段时间之内,让多个进程都得以推进,称
    之为并发

分时操作系统和实时操作系统:

  1. 分时操作系统(Time-Sharing OS)
    定义:将 CPU 时间划分为多个 "时间片",轮流分配给多个用户 / 进程使用,通过快速切换营造 "同时使用" 的假象。
    核心目标:公平性、交互性、资源利用率,让多个用户能同时操作并快速获得响应。
    典型例子:Linux、Windows、macOS(日常使用的桌面 / 服务器系统)。

分时系统的 "分时" 是为了 "多任务并发",让更多用户 / 程序共享资源;

  1. 实时操作系统(Real-Time OS, RTOS)
    定义:能保证任务在严格规定的时间期限内(截止时间)完成,延迟可预测且可控。
    核心目标:时效性、可靠性、可预测性,优先保证关键任务不超时,而非资源利用率。
    典型例子:FreeRTOS、VxWorks、QNX(用于工业控制、自动驾驶、医疗设备等场景)。

从进程状态的 R/S/D/T/Z,到优先级的 Nice 值调整,再到分时与实时操作系统的调度逻辑,我们一步步揭开了 Linux 进程管理的神秘面纱!

这趟学习之旅,我们不仅掌握了实操技能:用ps/top查看状态与优先级,用kill/renice调整进程行为,还理解了底层逻辑 ------ 进程状态是 OS 对进程的 "分类管理",优先级是调度的 "资源分配规则",而分时 OS 的公平调度、实时 OS 的时效优先,正是这些规则的终极体现。

无论是日常排查 "进程无响应""僵尸进程",还是理解 "为什么有些任务能优先执行",这些知识都能成为你的 "技术武器"。编程的魅力,就在于从具体操作到抽象逻辑的层层拆解,从零散知识点到完整体系的逐步构建。

如果这篇文章帮你打通了进程管理的任督二脉,不妨点赞收藏,也欢迎逛逛我的专栏,后续还会分享更多 Linux 内核干货、编程技巧和实战案例~ 愿我们都能在代码的世界里,不断解锁新技能,探索更深层的技术本质,继续热血前行!💻✨

相关推荐
一叶知秋yyds2 小时前
linux 系统查看进程占用物理内存大小方法
linux·运维·服务器
JiMoKuangXiangQu2 小时前
bash 启动程序的流程
linux·bash·进程启动
大志若愚YYZ2 小时前
嵌入式Linux——Shell脚本编程
linux
大志若愚YYZ2 小时前
嵌入式Linux学习——环境变量与配置文件的关系(⭐难理解)
linux·学习
香吧香2 小时前
SNMP 请求响应报文传输分片定位
linux·网络与传输协议
AI绘画小332 小时前
渗透测试数据库判断卡壳?分类 + 方法 + SQL/NoSQL 脚本速用
服务器·数据库·sql·mysql·web安全·nosql
尤利乌斯.X2 小时前
在Java中调用MATLAB函数的完整流程:从打包-jar-到服务器部署
java·服务器·python·matlab·ci/cd·jar·个人开发
Bowen_CV3 小时前
Linux 系统安装与环境配置实践
linux·运维·服务器
JZC_xiaozhong3 小时前
跨系统流程如何打通?选 BPM 平台认准这三点
大数据·运维·自动化·数据集成与应用集成·业务流程管理·流程设计可视化·流程监控