?
??樊梓慕:個(gè)人主頁(yè)
???個(gè)人專欄:《C語(yǔ)言》《數(shù)據(jù)結(jié)構(gòu)》《藍(lán)橋杯試題》《LeetCode刷題筆記》《實(shí)訓(xùn)項(xiàng)目》《C++》《Linux》
??每一個(gè)不曾起舞的日子,都是對(duì)生命的辜負(fù)
目錄
前言
1.基本概念
2.PRI與NI
3.利用top命令更改已存在進(jìn)程的nice值
4.通過renice命令更改進(jìn)程的nice值?
5.四個(gè)重要概念
前言
本篇文章博主將會(huì)講解進(jìn)程優(yōu)先級(jí)的概念,我們知道一個(gè)CPU只能同時(shí)運(yùn)行一個(gè)進(jìn)程,而進(jìn)程是由很多個(gè)的,所以需要存在進(jìn)程優(yōu)先級(jí)來確定進(jìn)程獲取CPU資源的順序。
?歡迎大家??收藏??以便未來做題時(shí)可以快速找到思路,巧妙的方法可以事半功倍。?
=========================================================================
GITEE相關(guān)代碼:??fanfei_c的倉(cāng)庫(kù)??
=========================================================================
1.基本概念
- cpu資源分配的先后順序,就是指進(jìn)程的優(yōu)先權(quán)(priority)。
- 優(yōu)先權(quán)高的進(jìn)程有優(yōu)先執(zhí)行權(quán)利。配置進(jìn)程優(yōu)先權(quán)對(duì)多任務(wù)環(huán)境的linux很有用,可以改善系統(tǒng)性能。
- 還可以把進(jìn)程運(yùn)行到指定的CPU上,這樣一來,把不重要的進(jìn)程安排到某個(gè)CPU,可以大大改善系統(tǒng)整體性能。
?在Linux系統(tǒng)中,利用ps -l命令來查看系統(tǒng)進(jìn)程:
- UID : 代表執(zhí)行者的身份
- PRI :代表這個(gè)進(jìn)程可被執(zhí)行的優(yōu)先級(jí),其值越小越早被執(zhí)行
- NI :代表這個(gè)進(jìn)程的nice值??
2.PRI與NI
- PRI的值所代表的就是進(jìn)程的優(yōu)先級(jí),PRI值越小,優(yōu)先級(jí)越高。
- NI即為nice值,表示進(jìn)程優(yōu)先級(jí)的修正數(shù)值。
即PRI(new)=PRI(old)+nice
注意:PRI(old)都是80
在Linux中,初始進(jìn)程優(yōu)先級(jí)默認(rèn)為80,NI默認(rèn)為0.?
注意nice可為負(fù),所以我們可以通過調(diào)整nice值得方式來調(diào)整進(jìn)程優(yōu)先級(jí)。
- PRI取值范圍[60,99]
- nice值取值范圍[-20,19]
??思考:Linux調(diào)整優(yōu)先級(jí)為什么是要受限制的???
如果不限制,誰都想要讓自己進(jìn)程的優(yōu)先級(jí)高,別人的優(yōu)先級(jí)低。
那就會(huì)導(dǎo)致有的人會(huì)將進(jìn)程優(yōu)先級(jí)設(shè)置的非常高。
優(yōu)先級(jí)較高的進(jìn)程優(yōu)先得到資源,那后續(xù)產(chǎn)生的常規(guī)進(jìn)程就很難享受到CPU資源。
這個(gè)問題被稱為:進(jìn)程饑餓。
請(qǐng)注意:任何分時(shí)操作系統(tǒng),都要保證進(jìn)程調(diào)度上較為公平的進(jìn)行。
但還有另外一種實(shí)時(shí)操作系統(tǒng),就不能是這種基于時(shí)間片輪轉(zhuǎn)的方式進(jìn)行了,具體的內(nèi)容大家可以看博主進(jìn)程周邊系列的下一篇文章:進(jìn)程的調(diào)度與切換。
3.利用top命令更改已存在進(jìn)程的nice值
top命令可以理解為Windows系統(tǒng)中的任務(wù)管理器,它能夠動(dòng)態(tài)實(shí)時(shí)的顯示系統(tǒng)當(dāng)中進(jìn)程的資源占用情況。
那如何利用top命令更改進(jìn)程nice值呢?
進(jìn)入top后按"r"->輸入進(jìn)程PID->輸入nice值
- top
- "r"
- 輸入進(jìn)程PID
- 輸入nice值?
- ?按q退出,ps -al查看下優(yōu)先級(jí)是否更改
注意:若是想將NI值調(diào)為負(fù)值,也就是調(diào)高進(jìn)程的優(yōu)先級(jí),需要使用sudo命令提升權(quán)限。?
4.通過renice命令更改進(jìn)程的nice值?
?實(shí)例:renice nice pid
同樣的:如果要調(diào)高優(yōu)先級(jí),即nice值為負(fù)需要sudo。
如:
5.四個(gè)重要概念
- 競(jìng)爭(zhēng)性: 系統(tǒng)進(jìn)程數(shù)目眾多,而CPU資源只有少量,甚至1個(gè),所以進(jìn)程之間是具有競(jìng)爭(zhēng)屬性的。為了高效完成任務(wù),更合理競(jìng)爭(zhēng)相關(guān)資源,便有了優(yōu)先級(jí)。
- 獨(dú)立性: 多進(jìn)程運(yùn)行,需要獨(dú)享各種資源,多進(jìn)程運(yùn)行期間互不干擾。
- 并行: 多個(gè)進(jìn)程在多個(gè)CPU下分別同時(shí)進(jìn)行運(yùn)行,這稱之為并行。
- 并發(fā): 多個(gè)進(jìn)程在一個(gè)CPU下采用進(jìn)程切換的方式,在一段時(shí)間之內(nèi),讓多個(gè)進(jìn)程都得以推進(jìn),稱之為并發(fā)。
=========================================================================文章來源地址http://www.zghlxwxcb.cn/news/detail-771519.html
如果你對(duì)該系列文章有興趣的話,歡迎持續(xù)關(guān)注博主動(dòng)態(tài),博主會(huì)持續(xù)輸出優(yōu)質(zhì)內(nèi)容
??博主很需要大家的支持,你的支持是我創(chuàng)作的不竭動(dòng)力??
??~ 點(diǎn)贊收藏+關(guān)注 ~??文章來源:http://www.zghlxwxcb.cn/news/detail-771519.html
=========================================================================
到了這里,關(guān)于【Linux】進(jìn)程周邊003之進(jìn)程優(yōu)先級(jí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!