当前位置: 首页 > news >正文

Linux操作系统从入门到实战(二十)进程优先级

Linux操作系统从入门到实战(十九)进程优先级

  • 前言
  • 一、进程优先级
    • 1 基本概念
    • 2 查看系统进程
    • 3 PRI 和 NI 是什么?
    • 4 PRI 和 NI 的区别
    • 5 怎么调整进程优先级?
    • 6 补竞争、独立、并行、并发


前言

  • 上一篇博客中,我们介绍了进程状态,以及僵尸进程与孤儿进程;
  • 这一篇,我们将讲解进程优先级。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482


一、进程优先级

1 基本概念

我们的电脑里可能同时运行着很多程序(比如浏览器、微信、音乐软件),但CPU(电脑的“大脑”)一次能处理的任务有限。

  • 这时候就得给这些程序分个“先后顺序”——这就是进程优先级

  • 优先级高的程序,CPU会先处理它,响应速度更快

  • 比如在Linux系统里,给重要的程序(像系统核心程序)设高优先级,不重要的(像后台下载)设低优先级,电脑整体运行会更流畅。

还能指定某个程序只在特定的CPU核心上运行(比如电脑有4个CPU核心,让下载软件只用第4个),这样就不会影响其他核心上的重要程序,进一步提升效率。

2 查看系统进程

想知道当前电脑里的程序优先级?在Linux或Unix系统里,用 ps -l 命令就能看到相关信息。输出结果里有几个关键信息要注意:
在这里插入图片描述

  • UID:谁在运行这个程序(比如你的用户账号ID)。
  • PID:每个程序的“身份证号”,独一无二,用来区分不同程序。
  • PPID:这个程序的“爸爸”(父进程)的ID。比如你双击打开微信,“双击”这个动作可能就是微信的父进程。
  • PRI:程序的优先级数值,数字越小,优先级越高(比如PRI=10的程序比PRI=20的先被CPU处理)。
  • NI:后面会重点说的“nice值”,用来调整优先级的“修正器”。

3 PRI 和 NI 是什么?

前面提到了PRI和NI,这俩是调整优先级的核心,我们拆开来理解:

  • PRI(优先级):直接决定程序被CPU处理的先后顺序,数值越小越优先。比如PRI=5的程序,会比PRI=10的先“插队”。

  • NI(nice值):它不是优先级本身,而是用来“修正”PRI的。比如原来PRI是20,加上NI的值后,新的PRI就变成:
    PRI(新) = PRI(旧) + NI

    举个例子:

    • 如果NI是 -5,原来PRI=20,新PRI就是15(变小了)→ 优先级变高,更快被处理。
    • 如果NI是 10,原来PRI=20,新PRI就是30(变大了)→ 优先级变低,更晚被处理。

    注意:NI的取值范围是 -20到19(一共40个级别),-20是最大的“加急”,19是最大的“减速”。

4 PRI 和 NI 的区别

很多人会搞混这俩,其实它们不是一回事:

  • PRI是“最终的优先级”,直接决定执行顺序;
  • NI是“调整PRI的工具”,相当于给PRI做“加减分”。

比如考试分数(PRI)= 平时成绩(PRI旧)+ 附加分(NI)。附加分(NI)会影响最终分数(PRI),但它本身不是分数。

5 怎么调整进程优先级?

主要用这些工具:

  1. top命令(改已运行的程序)

    • 输入 top 回车,进入进程监控界面;
    • r 键,输入要调整的程序的PID(前面说的“身份证号”);
    • 再输入想设置的NI值(比如输入-5,让它优先级变高)。
  2. 其他命令:

    • nice:启动程序时直接设置NI值(比如 nice -n 5 程序名,让程序启动时NI=5,优先级降低)。
    • renice:调整已运行程序的NI值(比如 renice 10 -p 1234,给PID=1234的程序设NI=10)。

6 补竞争、独立、并行、并发

  • 竞争性:电脑里程序多,但CPU少,就像很多人抢少数几个座位,必须分优先级才能有序。
  • 独立性:每个程序运行时互不干扰,比如微信崩溃了,浏览器还能正常用。
  • 并行:多个CPU同时处理多个程序。比如电脑有2个CPU核心,一个跑浏览器,一个跑音乐软件,两者真正“同时”运行。
  • 并发:只有一个CPU时,它快速在多个程序间切换(比如先处理浏览器0.1秒,再切到微信0.1秒),看起来像“同时”运行,其实是轮流处理。

以上就是这篇博客的全部内容,下一篇我们将继续探索Linux的更多精彩内容。

我的个人主页
欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

http://www.dtcms.com/a/325761.html

相关文章:

  • 【从零开始java学习|第一篇】java中的名词概念(JDK、JVM、JRE等等)
  • 15. xhr 对象如何发起一个请求
  • VSCode右键菜单消失,修复VSCode右键菜单
  • raid10 允许最多坏几块磁盘,如何修复阵列?
  • lesson35:数据库深度解析:从概念到MySQL实战学习指南
  • 如何使用 Watchtower 实现定时更新 docker 中的镜像并自动更新容器(附 schedule 的参数详细解释)
  • 升级 ChatGPT 提示“您的银行卡被拒绝了”或者“您的信用卡被拒绝了。请尝试用借记卡支付。“如何解决?
  • FPGA+护理:跨学科发展的探索(二)
  • CVPR 2025 | 即插即用,极简数据蒸馏,速度up20倍,GPU占用仅2G
  • 【数字图像处理系列笔记】Ch09:特征提取与表示
  • YOLOv8 训练报错:PyTorch 2.6+ 模型加载兼容性问题解决
  • GPT-5 现已上线 DigitalOcean Gradient™ AI 平台!
  • 数据大集网:精准获客新引擎,助力中小企业突破推广困局
  • UKB-GWAS资源更新
  • C++ 检测 IPv4 和 IPv6 地址合法性
  • 朝花夕拾(一)-------布尔掩码(Boolean Mask)是什么?
  • npm install报错~[master] npm install npm error code ERESOLVE npm err
  • Redis 数据倾斜
  • 触想定制化工业一体机化身渔业预警终端,守望渔船安全
  • 验证二叉搜索树
  • (Arxiv-2025)Phantom:通过跨模态对齐实现主体一致性视频生成
  • 如何安装 Git (windows/mac/linux)
  • CodeBuddy IDE完全食用手册:从安装到生产力爆发的技术流解剖
  • 训推一体 | 暴雨X8848 G6服务器 x Intel®Gaudi® 2E AI加速卡
  • Android Audio实战——获取活跃音频类型(十五)
  • 2025 年国内可用 Docker 镜像加速器地址
  • 【深度学习3】向量化(Vectorization)
  • SpringUI Axure元件库:重塑高效原型设计的专业工具集
  • Agent在供应链管理中的应用:库存优化与需求预测
  • 从ELF到进程间通信:剖析Linux程序的加载与交互机制