【Linux】进程周边003之进程优先级
?
👀樊梓慕:个人主页
?🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》
🌝每一个不曾起舞的日子,都是对生命的辜负
目录
前言
本篇文章博主将会讲解进程优先级的概念,我们知道一个CPU只能同时运行一个进程,而进程是由很多个的,所以需要存在进程优先级来确定进程获取CPU资源的顺序。
?欢迎大家📂收藏📂以便未来做题时可以快速找到思路,巧妙的方法可以事半功倍。?
=========================================================================
GITEE相关代码:🌟fanfei_c的仓库🌟
=========================================================================
1.基本概念
- cpu资源分配的先后顺序,就是指进程的优先权(priority)。
- 优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。
- 还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。
?在Linux系统中,利用ps -l命令来查看系统进程:
- UID : 代表执行者的身份
- PRI :代表这个进程可被执行的优先级,其值越小越早被执行
- NI :代表这个进程的nice值??
2.PRI与NI
- PRI的值所代表的就是进程的优先级,PRI值越小,优先级越高。
- NI即为nice值,表示进程优先级的修正数值。
即PRI(new)=PRI(old)+nice
注意:PRI(old)都是80
在Linux中,初始进程优先级默认为80,NI默认为0.?
注意nice可为负,所以我们可以通过调整nice值得方式来调整进程优先级。
- PRI取值范围[60,99]
- nice值取值范围[-20,19]
🐸思考:Linux调整优先级为什么是要受限制的?🐸
如果不限制,谁都想要让自己进程的优先级高,别人的优先级低。
那就会导致有的人会将进程优先级设置的非常高。
优先级较高的进程优先得到资源,那后续产生的常规进程就很难享受到CPU资源。
这个问题被称为:进程饥饿。
请注意:任何分时操作系统,都要保证进程调度上较为公平的进行。
但还有另外一种实时操作系统,就不能是这种基于时间片轮转的方式进行了,具体的内容大家可以看博主进程周边系列的下一篇文章:进程的调度与切换。
3.利用top命令更改已存在进程的nice值
top命令可以理解为Windows系统中的任务管理器,它能够动态实时的显示系统当中进程的资源占用情况。
那如何利用top命令更改进程nice值呢?
进入top后按"r"->输入进程PID->输入nice值
- top
- "r"
- 输入进程PID
- 输入nice值?
- ?按q退出,ps -al查看下优先级是否更改
注意:若是想将NI值调为负值,也就是调高进程的优先级,需要使用sudo命令提升权限。?
4.通过renice命令更改进程的nice值?
?实例:renice nice pid
同样的:如果要调高优先级,即nice值为负需要sudo。
如:
5.四个重要概念
- 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便有了优先级。
- 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰。
- 并行: 多个进程在多个CPU下分别同时进行运行,这称之为并行。
- 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。
=========================================================================
如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容
🍎博主很需要大家的支持,你的支持是我创作的不竭动力🍎
🌟~ 点赞收藏+关注 ~🌟
=========================================================================
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!