💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶🔹C++🔹Liunx
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍
一、为什么需要优先级?
有如下几个原因:
1️⃣ 从最根本的角度来看,其实就是因为,计算机资源有限呀,如果计算机cup性能无比强悍,内存无线大。就是一次性给1000个进程,都能同时执行,也就不需要什么排队(运行队列,阻塞队列),也不需要优先级这个概念了,谁来就是第一时间执行。
2️⃣ 正因为我们的计算机远达不到那种强大程度,所以,进程之间都充斥着竞争关系
。
3️⃣ 当某个紧急进程需要立即执行
,此时,就需要修改进程的优先级
了。没有它是万万不行的。
4️⃣ 我们的操作系统,也是需要确认优先级,才可以组织所有的进程有序安全执行
二、Linux进程优先级具体是什么?
首先,我们学习一个指令:该指令用来查看当前用户下所有进程的优先级
ps -al
这里我们先来弄清楚字段都是什么意思:
UID | 执行者的身份 |
---|---|
PID | 进程的代号 |
PPID | 进程是由哪个进程发展衍生而来的,即父进程的代号 |
PRI | 当前进程可被执行的优先级,其值越小越早 被执行,默认80 |
NI | 这个进程的nice 值 |
进程的优先级就是上图中的PRI
,默认是80
。
Linux的优先级范围是[60,99],一共是40个。
Linux中的优先级本质就是int型的数字,数字越小,优先级越高
三、如何修改优先级
答:进程的优先级是可以被修改的,但是,操作系统绝对不允许你能直接修改PRI值,而是通过修改这个进程的
nice
值。
🎯 修改的本质就是PRI(新的) = PRI(旧的)+ NI(nice值);
注意:修改时,操作系统会自动检测修改是否允许。
那么是什么是nice值呢?
- nice值又叫修正数值, nice值的范围是[-20,19],一共也是40个,就是为了对应Linux中的40个优先级值。
四、实际演示一下如何修改
1.首先,将你的进程跑起来,然后去看看它的PID值。下图得到进程PID的值为9438
2.确定需要修改的进程后,执行top指令
,再按下r
键。就会出来粉色选中的内容。
3.输入进程的PID
,我这里是【9438】-回车。此时,需要输入nice值(范围时 -20~19)我输入【-10】-回车
🚩注意:
提升优先级
需要再root权限
下执行。
在Linux系统中其允许 root 用户设置负数优先级,以及减小现有进程的优先级数值大小;
但是对于普通用户而言,不可以
设置负数优先级
(也就是提升优先级),但是呢却可以
去设置正数优先级
,可以去增大现有进程的优先级数值大小
4.此时,再执行【ps -al
】去查看进程的优先级。你会惊奇的发现真的从80改为了70。
上面就是一次完整的演示实例。