首页 > 运维 > linux运维 > 正文

Linux-进程优先级

爱谁谁
发布: 2025-06-20 13:44:28
原创
504人浏览过
  1. 为什么要有优先级的概念

在大多数计算机中,cpu一次只能处理一个进程任务,但通常有多个进程需要运行。为了更有效地利用cpu资源,引入了进程优先级的概念,以决定进程获取cpu资源的顺序。这类似于生活中的排队情况,除了遵循先来后到的原则,优先级高的进程可以插队,就像在医院急诊病人可以优先挂号一样。提问:有没有可能因为大量的优先级更高的进程插队导致低优先级的进程迟迟得不到执行?回答:这涉及到进程饥饿的问题。在linux中,有相关的解决方法,linux会维护两个队列,一个为活跃队列,另一个为过期队列,这里就不详细讲解了。

  1. 进程优先级的基本概念

CPU资源分配的先后顺序,就是指进程的优先级(priority)。优先级高的进程有优先执行的权力。在多任务环境的Linux中,配置进程优先级可以改善系统性能。通过将不重要的进程分配到特定的CPU上,可以大大提升系统的整体性能。进程要访问某种资源,必须通过一定的方式确定享受资源的先后顺序。有人可能会将进程的优先级与权限进行类比,但两者其实是不同的:

  1. 查看系统进程

在Linux或Unix系统中,输入ps -l会显示以下内容:

Linux-进程优先级

进程优先级下面我们来介绍各个符号的意义:

  • UID:代表执行者的身份。
  • PID:代表这个进程的代号。
  • PPID:代表这个进程是由哪个进程发展衍生而来的,也就是父进程的代号。
  • PRI:代表这个进程可被执行的优先级,其值越小优先级越高。
  • NI:代表这个进程的nice值。

3.1 介绍PRI和NI

PRI就是进程的优先级,通俗地说就是程序被CPU执行的先后顺序,此值越小进程的优先级越高。优先值范围为[60,99],一般默认的优先级为80。NI就是我们要说明的nice值,表示进程可被执行的优先级的修正数值。PRI越小越快被执行,那么加入nice值后,就会得到新的PRI:PRI(NEW) = PRI(OLD)+nice。如此一来,当nice值为负值的时候,那么该程序的优先值会变小,其优先级会变高,从而更快被执行。nice的取值范围为[-20,19],一共40个级别,这也对应了第一点。

3.1.1 调整进程的优先级

通过公式PRI(NEW) = PRI(OLD)+nice,我们知道,调整进程的优先级的本质就是调整nice的值。指令:top

进入top后按“r”->输入进程PID->输入nice值
登录后复制

演示:修改nice值为100。

Linux-进程优先级

修改nice值为100。通过演示我们可以发现,尽管nice的值被修改为100,PRI的值变成了99。这也证明了PRI的范围。值得注意的是,每次都是直接给nice赋值,而不是在原有nice的基础上加减。提问:为什么调整优先级要受限制?回答:如果不加限制,将自己进程的优先级调整得非常高,别人的优先级调整得非常低,优先级较高的进程优先得到资源,后续源源不断的进程产生。常规进程很难享受到CPU的资源,也就造成了进程饥饿问题。

  1. Linux的调度与切换

提问:在进程运行时,CPU会直接把进程代码跑完吗?答案:不会,现代操作系统是基于时间片进行轮流执行的,假设每个进程执行1ms,那么CPU在每1ms都会切换进程来执行。

一些其他概念

  • 竞争性:系统进程数目众多而CPU资源有限,甚至只有一个,所以进程间具有竞争属性。为了高效完成任务,更合理地竞争相关资源,便有了优先级。
  • 独立性:多进程运行,需要独享各种资源,多进程运行期间,互不干扰。
  • 并行:多个进程在多个CPU下分别、同时进行运行,这称之为并行。
  • 并发:多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程得以推进,称之为并发。

以上就是Linux-进程优先级的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号