????
樊梓慕:
个人主页
????
个人专栏:
《C语言》
《数据结构》
《蓝桥杯试题》
《LeetCode刷题笔记》
《实训项目》
《C++》
《Linux》
????
每一个不曾起舞的日子,都是对生命的辜负
目录
前言
1.基本概念
2.PRI与NI
3.利用top命令更改已存在进程的nice值
4.通过renice命令更改进程的nice值
5.四个重要概念
前言
本篇文章博主将会讲解进程优先级的概念,我们知道一个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下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发。
=========================================================================
如果你对该系列文章有兴趣的话,欢迎持续关注博主动态,博主会持续输出优质内容
????博主很需要大家的支持,你的支持是我创作的不竭动力????
????
~ 点赞收藏+关注 ~
????
=========================================================================