這篇文章將為大家詳細(xì)講解有關(guān)Linux的進(jìn)程優(yōu)先級(jí)NI和PR有哪些區(qū)別呢,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元新密做網(wǎng)站,已為上家服務(wù),為新密各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
為什么要有進(jìn)程優(yōu)先級(jí)?
這似乎不用過多的解釋,畢竟自從多任務(wù)操作系統(tǒng)誕生以來,進(jìn)程執(zhí)行占用cpu的能力就是一個(gè)必須要可以人為控制的事情。因?yàn)橛械倪M(jìn)程相對(duì)重要,而有的進(jìn)程則沒那么重要。
進(jìn)程優(yōu)先級(jí)起作用的方式從發(fā)明以來基本沒有什么變化,無論是只有一個(gè)cpu的時(shí)代,還是多核cpu時(shí)代,都是通過控制進(jìn)程占用cpu時(shí)間的長(zhǎng)短來實(shí)現(xiàn)的。
就是說在同一個(gè)調(diào)度周期中,優(yōu)先級(jí)高的進(jìn)程占用的時(shí)間長(zhǎng)些,而優(yōu)先級(jí)低的進(jìn)程占用的短些。
請(qǐng)大家真的不要混淆了系統(tǒng)中的這兩個(gè)概念:nice(NI)和priority(PR),他們有著千絲萬縷的關(guān)系,但對(duì)于當(dāng)前的Linux系統(tǒng)來說,它們并不是同一個(gè)概念。
我們看這個(gè)命令:
大家是否真的明白其中PRI列和NI列的具體含義有什么區(qū)別?
同樣的,如果是top命令:
大家是否搞清楚了這其中PR值和NI值的差別?如果沒有,那么我們可以首先搞清楚什么是nice值。
什么是NICE值?
NICE值應(yīng)該是熟悉Linux/UNIX的人很了解的概念了,它是反應(yīng)一個(gè)進(jìn)程“優(yōu)先級(jí)”狀態(tài)的值,其取值范圍是-20至19,一共40個(gè)級(jí)別。
這個(gè)值越小,表示進(jìn)程”優(yōu)先級(jí)”越高,而值越大“優(yōu)先級(jí)”越低。
例如,我們可以通過NICE命令來對(duì)一個(gè)將要執(zhí)行的bash命令進(jìn)行NICE值設(shè)置,方法是:
[root@zorrozou-pc0 zorro]# nice -n 10 bash
這樣我就又打開了一個(gè)bash,并且其nice值設(shè)置為10,而默認(rèn)情況下,進(jìn)程的優(yōu)先級(jí)應(yīng)該是從父進(jìn)程繼承來的,這個(gè)值一般是0。
我們可以通過nice命令直接查看到當(dāng)前shell的nice值:
[root@zorrozou-pc0 zorro]# nice 10
對(duì)比一下正常情況:
[root@zorrozou-pc0 zorro]# exit
退出當(dāng)前nice值為10的bash,打開一個(gè)正常的bash,我們查看下其 Nice值:
[root@zorrozou-pc0 zorro]# bash [root@zorrozou-pc0 zorro]# nice 0
另外,使用renice命令可以對(duì)一個(gè)正在運(yùn)行的進(jìn)程進(jìn)行nice值的調(diào)整,我們也可以使用比如top、ps等命令查看進(jìn)程的nice值,具體方法我就不多說了,大家可以參閱相關(guān)man page。
需要大家注意的是,我在這里都在使用nice值這一稱謂,而非優(yōu)先級(jí)(priority)這個(gè)說法。
nice值雖然不是priority,但是它確實(shí)可以影響進(jìn)程的優(yōu)先級(jí)。
在英語中,如果我們形容一個(gè)人nice,那一般說明這個(gè)人的人緣比較好。什么樣的人人緣好?往往是謙讓、有禮貌的人。
比如,你跟一個(gè)nice的人一起去吃午飯,點(diǎn)了兩個(gè)一樣的飯,先上了一份后,nice的那位一般都會(huì)說:“你先吃你先吃!”,這就是人緣好,這人nice!但是如果另一份上的很晚,那么這位nice的人就要餓著了。
這說明什么?
越nice的人搶占資源的能力就越差,而越不nice的人搶占能力就越強(qiáng)。這就是nice值大小的含義,nice值越低,說明進(jìn)程越不nice,搶占cpu的能力就越強(qiáng),優(yōu)先級(jí)就越高(作者這個(gè)解釋太形象了,小編忍不住要手動(dòng)點(diǎn)贊!!)。
在原來使用O1調(diào)度的Linux上,我們還會(huì)把nice值叫做靜態(tài)優(yōu)先級(jí),這也基本符合nice值的特點(diǎn),就是當(dāng)nice值設(shè)定好了之后,除非我們用renice去改它,否則它是不變的。
而priority的值在之前內(nèi)核的O1調(diào)度器上表現(xiàn)是會(huì)變化的,所以也叫做動(dòng)態(tài)優(yōu)先級(jí)。
什么是優(yōu)先級(jí)和實(shí)時(shí)進(jìn)程?
我們?cè)賮砜纯词裁词莗riority值,就是ps命令中看到的PRI值或者top命令中看到的PR值。
本文為了區(qū)分這些概念,以后:
統(tǒng)一用nice值表示NI值,或者叫做靜態(tài)優(yōu)先級(jí),也就是用nice和renice命令來調(diào)整的優(yōu)先級(jí);
而實(shí)用priority值表示PRI和PR值,或者叫動(dòng)態(tài)優(yōu)先級(jí)。
我們也統(tǒng)一將“優(yōu)先級(jí)”這個(gè)詞的概念規(guī)定為表示priority值的意思。
在內(nèi)核中,進(jìn)程優(yōu)先級(jí)的取值范圍是通過一個(gè)宏定義的,這個(gè)宏的名稱是MAX_PRIO,它的值為140。
而這個(gè)值又是由另外兩個(gè)值相加組成的,一個(gè)是代表nice值取值范圍的NICE_WIDTH宏,另一個(gè)是代表實(shí)時(shí)進(jìn)程(realtime)優(yōu)先級(jí)范圍的MAX_RT_PRIO宏。
說白了就是,Linux實(shí)際上實(shí)現(xiàn)了140個(gè)優(yōu)先級(jí)范圍,取值范圍是從0-139,這個(gè)值越小,優(yōu)先級(jí)越高。nice值的-20到19,映射到實(shí)際的優(yōu)先級(jí)范圍是100-139。
新產(chǎn)生進(jìn)程的默認(rèn)優(yōu)先級(jí)被定義為:
#define DEFAULT_PRIO (MAX_RT_PRIO + NICE_WIDTH / 2)
實(shí)際上對(duì)應(yīng)的就是nice值的0。
正常情況下,任何一個(gè)進(jìn)程的優(yōu)先級(jí)都是這個(gè)值,即使我們通過nice和renice命令調(diào)整了進(jìn)程的優(yōu)先級(jí),它的取值范圍也不會(huì)超出100-139的范圍,除非這個(gè)進(jìn)程是一個(gè)實(shí)時(shí)進(jìn)程,那么它的優(yōu)先級(jí)取值才會(huì)變成0-99這個(gè)范圍中的一個(gè)。
這里隱含了一個(gè)信息,就是說當(dāng)前的Linux是一種已經(jīng)支持實(shí)時(shí)進(jìn)程的操作系統(tǒng)。
什么是實(shí)時(shí)操作系統(tǒng)?
我們就不再這里詳細(xì)解釋其含義以及在工業(yè)領(lǐng)域的應(yīng)用了,有興趣的可以參考一下實(shí)時(shí)操作系統(tǒng)的維基百科。
簡(jiǎn)單來說,實(shí)時(shí)操作系統(tǒng)需要保證相關(guān)的實(shí)時(shí)進(jìn)程在較短的時(shí)間內(nèi)響應(yīng),不會(huì)有較長(zhǎng)的延時(shí),并且要求最小的中斷延時(shí)和進(jìn)程切換延時(shí)。
對(duì)于這樣的需求,一般的進(jìn)程調(diào)度算法,無論是O1還是CFS都是無法滿足的,所以內(nèi)核在設(shè)計(jì)的時(shí)候,將實(shí)時(shí)進(jìn)程單獨(dú)映射了100個(gè)優(yōu)先級(jí),這些優(yōu)先級(jí)都要高于正常進(jìn)程的優(yōu)先級(jí)(nice值),而實(shí)時(shí)進(jìn)程的調(diào)度算法也不同,它們采用更簡(jiǎn)單的調(diào)度算法來減少調(diào)度開銷。
總的來說,Linux系統(tǒng)中運(yùn)行的進(jìn)程可以分成兩類:
實(shí)時(shí)進(jìn)程
非實(shí)時(shí)進(jìn)程
它們的主要區(qū)別就是通過優(yōu)先級(jí)來區(qū)分的。
所有優(yōu)先級(jí)值在0-99范圍內(nèi)的,都是實(shí)時(shí)進(jìn)程,所以這個(gè)優(yōu)先級(jí)范圍也可以叫做實(shí)時(shí)進(jìn)程優(yōu)先級(jí),而100-139范圍內(nèi)的是非實(shí)時(shí)進(jìn)程。
在系統(tǒng)中可以使用chrt命令來查看、設(shè)置一個(gè)進(jìn)程的實(shí)時(shí)優(yōu)先級(jí)狀態(tài)。我們可以先來看一下chrt命令的使用:
我們先來關(guān)注顯示出的Policy options部分,會(huì)發(fā)現(xiàn)系統(tǒng)給各種進(jìn)程提供了5種調(diào)度策略。
但是這里并沒有說明的是,這五種調(diào)度策略是分別給兩種進(jìn)程用的,對(duì)于實(shí)時(shí)進(jìn)程可以用的調(diào)度策略是:SCHED_FIFO、SCHED_RR,而對(duì)于非實(shí)時(shí)進(jìn)程則是:SCHED_OTHER、SCHED_OTHER、SCHED_IDLE。
系統(tǒng)的整體優(yōu)先級(jí)策略是:
如果系統(tǒng)中存在需要執(zhí)行的實(shí)時(shí)進(jìn)程,則優(yōu)先執(zhí)行實(shí)時(shí)進(jìn)程。
直到實(shí)時(shí)進(jìn)程退出或者主動(dòng)讓出CPU時(shí),才會(huì)調(diào)度執(zhí)行非實(shí)時(shí)進(jìn)程。
實(shí)時(shí)進(jìn)程可以指定的優(yōu)先級(jí)范圍為1-99,將一個(gè)要執(zhí)行的程序以實(shí)時(shí)方式執(zhí)行的方法為:
[root@zorrozou-pc0 zorro]# chrt 10 bash [root@zorrozou-pc0 zorro]# chrt -p $$ pid 14840's current scheduling policy: SCHED_RR pid 14840's current scheduling priority: 10
可以看到,新打開的bash已經(jīng)是實(shí)時(shí)進(jìn)程,默認(rèn)調(diào)度策略為SCHED_RR,優(yōu)先級(jí)為10。如果想修改調(diào)度策略,就加個(gè)參數(shù):
[root@zorrozou-pc0 zorro]# chrt -f 10 bash [root@zorrozou-pc0 zorro]# chrt -p $$ pid 14843's current scheduling policy: SCHED_FIFO pid 14843's current scheduling priority: 10
剛才說過,SCHED_RR和SCHED_FIFO都是實(shí)時(shí)調(diào)度策略,只能給實(shí)時(shí)進(jìn)程設(shè)置。對(duì)于所有實(shí)時(shí)進(jìn)程來說,優(yōu)先級(jí)高的(就是priority數(shù)字小的)進(jìn)程一定會(huì)保證先于優(yōu)先級(jí)低的進(jìn)程執(zhí)行。
SCHED_RR和SCHED_FIFO的調(diào)度策略只有當(dāng)兩個(gè)實(shí)時(shí)進(jìn)程的優(yōu)先級(jí)一樣的時(shí)候才會(huì)發(fā)生作用,其區(qū)別也是顧名思義:
SCHED_FIFO
以先進(jìn)先出的隊(duì)列方式進(jìn)行調(diào)度,在優(yōu)先級(jí)一樣的情況下,誰先執(zhí)行的就先調(diào)度誰,除非它退出或者主動(dòng)釋放CPU。
SCHED_RR
以時(shí)間片輪轉(zhuǎn)的方式對(duì)相同優(yōu)先級(jí)的多個(gè)進(jìn)程進(jìn)行處理。時(shí)間片長(zhǎng)度為100ms。
這就是Linux對(duì)于實(shí)時(shí)進(jìn)程的優(yōu)先級(jí)和相關(guān)調(diào)度算法的描述。整體很簡(jiǎn)單,也很實(shí)用。
而相對(duì)更麻煩的是非實(shí)時(shí)進(jìn)程,它們才是Linux上進(jìn)程的主要分類。對(duì)于非實(shí)時(shí)進(jìn)程優(yōu)先級(jí)的處理,我們首先還是要來介紹一下它們相關(guān)的調(diào)度算法:O1和CFS。
什么是O1調(diào)度?
O1調(diào)度算法是在Linux 2.6開始引入的,到Linux 2.6.23之后內(nèi)核將調(diào)度算法替換成了CFS。
雖然O1算法已經(jīng)不是當(dāng)前內(nèi)核所默認(rèn)使用的調(diào)度算法了,但是由于大量線上的服務(wù)器可能使用的Linux版本還是老版本,所以我相信很多服務(wù)器還是在使用著O1調(diào)度器,那么費(fèi)一點(diǎn)口舌簡(jiǎn)單交代一下這個(gè)調(diào)度器也是有意義的。
這個(gè)調(diào)度器的名字之所以叫做O1,主要是因?yàn)槠渌惴ǖ臅r(shí)間復(fù)雜度是O1。
O1調(diào)度器仍然是根據(jù)經(jīng)典的時(shí)間片分配的思路來進(jìn)行整體設(shè)計(jì)的。
簡(jiǎn)單來說,時(shí)間片的思路就是將CPU的執(zhí)行時(shí)間分成一小段一小段的,假如是5ms一段。于是多個(gè)進(jìn)程如果要“同時(shí)”執(zhí)行,實(shí)際上就是每個(gè)進(jìn)程輪流占用5ms的cpu時(shí)間,而從1s的時(shí)間尺度上看,這些進(jìn)程就是在“同時(shí)”執(zhí)行的。
當(dāng)然,對(duì)于多核系統(tǒng)來說,就是把每個(gè)核心都這樣做就行了。而在這種情況下,如何支持優(yōu)先級(jí)呢?
實(shí)際上就是將時(shí)間片分配成大小不等的若干種,優(yōu)先級(jí)高的進(jìn)程使用大的時(shí)間片,優(yōu)先級(jí)小的進(jìn)程使用小的時(shí)間片。這樣在一個(gè)周期結(jié)速后,優(yōu)先級(jí)大的進(jìn)程就會(huì)占用更多的時(shí)間而因此得到特殊待遇。
O1算法還有一個(gè)比較特殊的地方是,即使是相同的nice值的進(jìn)程,也會(huì)再根據(jù)其CPU的占用情況將其分成兩種類型:CPU消耗型和IO消耗性。
典型的CPU消耗型的進(jìn)程的特點(diǎn)是,它總是要一直占用CPU進(jìn)行運(yùn)算,分給它的時(shí)間片總是會(huì)被耗盡之后,程序才可能發(fā)生調(diào)度。
比如常見的各種算數(shù)運(yùn)算程序。
而IO消耗型的特點(diǎn)是,它經(jīng)常時(shí)間片沒有耗盡就自己主動(dòng)先釋放CPU了。
比如vi,emacs這樣的編輯器就是典型的IO消耗型進(jìn)程。
為什么要這樣區(qū)分呢?因?yàn)镮O消耗型的進(jìn)程經(jīng)常是跟人交互的進(jìn)程,比如shell、編輯器等。
當(dāng)系統(tǒng)中既有這種進(jìn)程,又有CPU消耗型進(jìn)程存在,并且其nice值一樣時(shí),假設(shè)給它們分的時(shí)間片長(zhǎng)度是一樣的,都是500ms,那么人的操作可能會(huì)因?yàn)镃PU消耗型的進(jìn)程一直占用CPU而變的卡頓。
可以想象,當(dāng)bash在等待人輸入的時(shí)候,是不占CPU的,此時(shí)CPU消耗的程序會(huì)一直運(yùn)算,假設(shè)每次都分到500ms的時(shí)間片,此時(shí)人在bash上敲入一個(gè)字符的時(shí)候,那么bash很可能要等個(gè)幾百ms才能給出響應(yīng),因?yàn)樵谌饲萌胱址臅r(shí)候,別的進(jìn)程的時(shí)間片很可能并沒有耗盡,所以系統(tǒng)不會(huì)調(diào)度bash程度進(jìn)行處理。
為了提高IO消耗型進(jìn)程的響應(yīng)速度,系統(tǒng)將區(qū)分這兩類進(jìn)程,并動(dòng)態(tài)調(diào)整CPU消耗的進(jìn)程將其優(yōu)先級(jí)降低,而IO消耗型的將其優(yōu)先級(jí)變高,以降低CPU消耗進(jìn)程的時(shí)間片的實(shí)際長(zhǎng)度。
已知nice值的范圍是-20-19,其對(duì)應(yīng)priority值的范圍是100-139,對(duì)于一個(gè)默認(rèn)nice值為0的進(jìn)程來說,其初始priority值應(yīng)該是120,隨著其不斷執(zhí)行,內(nèi)核會(huì)觀察進(jìn)程的CPU消耗狀態(tài),并動(dòng)態(tài)調(diào)整priority值,可調(diào)整的范圍是+-5。
就是說,***優(yōu)先級(jí)可以被自動(dòng)調(diào)整到115,***到125。這也是為什么nice值叫做靜態(tài)優(yōu)先級(jí),而priority值叫做動(dòng)態(tài)優(yōu)先級(jí)的原因。不過這個(gè)動(dòng)態(tài)調(diào)整的功能在調(diào)度器換成CFS之后就不需要了,因?yàn)镃FS換了另外一種CPU時(shí)間分配方式,這個(gè)我們后面再說。
什么是CFS完全公平調(diào)度?
O1已經(jīng)是上一代調(diào)度器了,由于其對(duì)多核、多CPU系統(tǒng)的支持性能并不好,并且內(nèi)核功能上要加入cgroup等因素,Linux在2.6.23之后開始啟用CFS作為對(duì)一般優(yōu)先級(jí)(SCHED_OTHER)進(jìn)程調(diào)度方法。
在這個(gè)重新設(shè)計(jì)的調(diào)度器中,時(shí)間片,動(dòng)態(tài)、靜態(tài)優(yōu)先級(jí)以及IO消耗,CPU消耗的概念都不再重要。CFS采用了一種全新的方式,對(duì)上述功能進(jìn)行了比較完善的支持。
其設(shè)計(jì)的基本思路是:我們想要實(shí)現(xiàn)一個(gè)對(duì)所有進(jìn)程完全公平的調(diào)度器。
又是那個(gè)老問題:如何做到完全公平?答案跟上一篇IO調(diào)度中CFQ的思路類似:
如果當(dāng)前有n個(gè)進(jìn)程需要調(diào)度執(zhí)行,那么調(diào)度器應(yīng)該在一個(gè)比較小的時(shí)間范圍內(nèi),把這n個(gè)進(jìn)程全都調(diào)度執(zhí)行一遍,并且它們平分cpu時(shí)間,這樣就可以做到所有進(jìn)程的公平調(diào)度。
那么這個(gè)比較小的時(shí)間就是任意一個(gè)R狀態(tài)進(jìn)程被調(diào)度的***延時(shí)時(shí)間,即:任意一個(gè)R狀態(tài)進(jìn)程,都一定會(huì)在這個(gè)時(shí)間范圍內(nèi)被調(diào)度響應(yīng)。這個(gè)時(shí)間也可以叫做調(diào)度周期,其英文名字叫做:sched_latency_ns。
CFS的優(yōu)先級(jí)
當(dāng)然,CFS中還需要支持優(yōu)先級(jí)。在新的體系中,優(yōu)先級(jí)是以時(shí)間消耗(vruntime增長(zhǎng))的快慢來決定的。
就是說,對(duì)于CFS來說,衡量的時(shí)間累積的絕對(duì)值都是一樣紀(jì)錄在vruntime中的,但是不同優(yōu)先級(jí)的進(jìn)程時(shí)間增長(zhǎng)的比率是不同的,高優(yōu)先級(jí)進(jìn)程時(shí)間增長(zhǎng)的慢,低優(yōu)先級(jí)時(shí)間增長(zhǎng)的快。
比如,優(yōu)先級(jí)為19的進(jìn)程,實(shí)際占用cpu為1秒,那么在vruntime中就記錄1s。但是如果是-20優(yōu)先級(jí)的進(jìn)程,那么它很可能實(shí)際占CPU用10s,在vruntime中才會(huì)紀(jì)錄1s。
CFS真實(shí)實(shí)現(xiàn)的不同nice值的cpu消耗時(shí)間比例在內(nèi)核中是按照“每差一級(jí)cpu占用時(shí)間差10%左右”這個(gè)原則來設(shè)定的。
這里的大概意思是說,如果有兩個(gè)nice值為0的進(jìn)程同時(shí)占用cpu,那么它們應(yīng)該每人占50%的cpu,如果將其中一個(gè)進(jìn)程的nice值調(diào)整為1的話,那么此時(shí)應(yīng)保證優(yōu)先級(jí)高的進(jìn)程比低的多占用10%的cpu,就是nice值為0的占55%,nice值為1的占45%。那么它們占用cpu時(shí)間的比例為55:45。
這個(gè)值的比例約為1.25。就是說,相鄰的兩個(gè)nice值之間的cpu占用時(shí)間比例的差別應(yīng)該大約為1.25。根據(jù)這個(gè)原則,內(nèi)核對(duì)40個(gè)nice值做了時(shí)間計(jì)算比例的對(duì)應(yīng)關(guān)系,它在內(nèi)核中以一個(gè)數(shù)組存在:
多CPU的CFS調(diào)度是怎樣的?
在上面的敘述中,我們可以認(rèn)為系統(tǒng)中只有一個(gè)CPU,那么相關(guān)的調(diào)度隊(duì)列只有一個(gè)。
實(shí)際情況是系統(tǒng)是有多核甚至多個(gè)CPU的,CFS從一開始就考慮了這種情況,它對(duì)每個(gè)CPU核心都維護(hù)一個(gè)調(diào)度隊(duì)列,這樣每個(gè)CPU都對(duì)自己的隊(duì)列進(jìn)程調(diào)度即可。
這也是CFS比O1調(diào)度算法更高效的根本原因:每個(gè)CPU一個(gè)隊(duì)列,就可以避免對(duì)全局隊(duì)列使用大內(nèi)核鎖,從而提高了并行效率。
當(dāng)然,這樣最直接的影響就是CPU之間的負(fù)載可能不均,為了維持CPU之間的負(fù)載均衡,CFS要定期對(duì)所有CPU進(jìn)行l(wèi)oad balance操作,于是就有可能發(fā)生進(jìn)程在不同CPU的調(diào)度隊(duì)列上切換的行為。
這種操作的過程也需要對(duì)相關(guān)的CPU隊(duì)列進(jìn)行鎖操作,從而降低了多個(gè)運(yùn)行隊(duì)列帶來的并行性。
不過總的來說,CFS的并行隊(duì)列方式還是要比O1的全局隊(duì)列方式要高效。尤其是在CPU核心越來越多的情況下,全局鎖的效率下降顯著增加。
小編的目的是從Linux系統(tǒng)進(jìn)程的優(yōu)先級(jí)為出發(fā)點(diǎn),我們也對(duì)CFS調(diào)度算法進(jìn)行了比較深入的分析。在我的經(jīng)驗(yàn)來看,這些知識(shí)對(duì)我們?cè)谟^察系統(tǒng)的狀態(tài)和相關(guān)優(yōu)化的時(shí)候都是非常有用的。
比如在使用top命令的時(shí)候,NI和PR值到底是什么意思?類似的地方還有ps命令中的NI和PRI值、ulimit命令-e和-r參數(shù)的區(qū)別等等。當(dāng)然,希望看完本文后,能讓大家對(duì)這些命令顯示的了解更加深入。
除此之外,我們還會(huì)發(fā)現(xiàn),雖然top命令中的PR值和ps -l命令中的PRI值的含義是一樣的,但是在優(yōu)先級(jí)相同的情況下,它們顯示的值確不一樣。
關(guān)于Linux的進(jìn)程優(yōu)先級(jí)NI和PR有哪些區(qū)別呢就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。