簡單講解linux四種進程優(yōu)先級
一、基本概念
cpu資源分配的先后順序,就是指進程的優(yōu)先權(quán)(priority)。
優(yōu)先權(quán)高的進程有優(yōu)先執(zhí)行權(quán)利。配置進程優(yōu)先權(quán)對多任務(wù)環(huán)境的linux很有用,可以改善系統(tǒng)性能。
還可以把進程運行到指定的CPU上,這樣一來,把不重要的進程安排到某CPU,可以大大改善系統(tǒng)整體性能。
二、查看系統(tǒng)進程
在linux或者unix系統(tǒng)中,用ps –l命令則會類似輸出以下幾個內(nèi)容:

我們很容易注意到其中的幾個重要信息,有下:
UID : 代表執(zhí)行者的身份
PID : 代表這個進程的代號
PPID :代表這個進程是由哪個進程發(fā)展衍生而來的,亦即父進程的代號
PRI :代表這個進程可被執(zhí)行的優(yōu)先級,其值越小越早被執(zhí)行
NI :代表這個進程的nice值
【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個人覺得比較好的學(xué)習(xí)書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦?。。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)? ??


PRI and NI
PRI也還是比較好理解的,即進程的優(yōu)先級,或者通俗點說就是程序被CPU執(zhí)行的先后順序,此值越小進程的優(yōu)先級別越高
那NI呢?就是我們所要說的nice值了,其表示進程可被執(zhí)行的優(yōu)先級的修正數(shù)值
PRI值越小越快被執(zhí)行,那么加入nice值后,將會使得PRI變?yōu)椋篜RI(new)=PRI(old)+nice
這樣,當nice值為負值的時候,那么該程序?qū)?yōu)先級值將變小,即其優(yōu)先級會變高,則其越快被執(zhí)行
所以,調(diào)整進程優(yōu)先級,在Linux下,就是調(diào)整進程nice值 nice其取值范圍是-20至19,一共40個級別
PRI vs NI
需要強調(diào)一點的是,進程的nice值不是進程的優(yōu)先級,他們不是一個概念,但是進程nice值會影響到進程的優(yōu)先級變化。
可以理解nice值是進程優(yōu)先級的修正修正數(shù)據(jù)
查看進程優(yōu)先級的命令,修改nice值
用top命令更改已存在進程的nice:
進入top后按“r”–>輸入進程PID–>輸入nice值
其他概念
競爭性: 系統(tǒng)進程數(shù)目眾多,而CPU資源只有少量,甚至1個,所以進程之間是具有競爭屬性的。為了高效完成任務(wù),更合理競爭相關(guān)資源,便具有了優(yōu)先級
獨立性: 多進程運行,需要獨享各種資源,多進程運行期間互不干擾
并行: 多個進程在多個CPU下分別,同時進行運行,這稱之為并行
并發(fā): 多個進程在一個CPU下采用進程切換的方式,在一段時間之內(nèi),讓多個進程都得以推進,稱之為并發(fā)
