2011-04-16 42 views
0

注意可能的錯誤在PRI從PS手冊頁:需要在PRI標準格式說明符PS解釋 - 在文檔

考慮PID 「的過程中PRI PRI優先級數字越大,意味着較低的優先級。」 26073這裏

$ renice +15 26073 


26073: old priority 5, new priority 15 # I am making this process more nice 

$ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri 

    PID PPID %CPU STAT CMD  START  TIME PRI 
9115 18136 0.0 Ss bash  17:10 00:00:01 19 
26073 9115 12.0 RN+ p4 sync 19:06 00:02:56 4 

STAT = RN +,這意味着:跑步,低PRIO(高興其他),前景。 PRI = 4(1)

$ sudo renice -10 26073 

26073: old priority 15, new priority -10 # I am making this process less nice 

$ ps -t 1 -o pid,ppid,%cpu,stat,cmd,bsdstart,time,pri 

    PID PPID %CPU STAT CMD  START  TIME PRI 
9115 18136 0.0 Ss bash  17:10 00:00:01 19 
26073 9115 12.0 S<+ p4 sync 19:06 00:03:15 29 

STAT = S < +這意味着:可中斷睡眠,高PRIO(未很好的其他人),前景。 PRI = 29(2)

在案例2中,流程優先級增加了,或者說是另一種方式,流程變得更優先了。

但這個矛盾是什麼PRI的定義從手冊頁(即數字越大,意味着較低的優先級)

回答

6

您正在PRI(當務之急)與NICE(分配的優先級)混淆說。當進程在I/O阻塞後重新啓動時,經常會得到一個提升(即較低的值),反之,如果它沒有阻塞地使用其調度器分配的時隙,則相反會降低(較高的值),至少使用標準調度器。許多系統具有不同行爲的備選調度程序,但在所有情況下,PRI是調度程序分配的實際當前優先級;該值受分配的「不錯」影響,但未被定義。

在Linux上的優先級管理here參考:http://oreilly.com/catalog/linuxkernel/chapter/ch10.html

+0

在我的電腦上,我仍然看到PRI值非常高,而且值很低。這最令人困惑。 – abc 2011-04-16 03:21:16

+0

我會看看你提供的參考資料。 – abc 2011-04-16 17:01:11

1

雖然我不是在Linux調度方面的專家,我不知道這「懲辦」 CPU密集型進程和獎勵I/O密集型進程(這是大多數調度或多或少地做)。正如所解釋的,這個調整和其他調整以及NICE值在調度程序中產生內部優先級設置。他們使用逆NICE值和非反內部PRI值的事實有點令人困惑,但是有道理。

+0

我在尋找更多關於此主題的評論!謝謝。 – abc 2011-04-16 17:00:15

+0

作爲一個附錄,我應該說在調度程序中動態調整真正的優先級的目的是爲了防止由CPU過度限制的過程壟斷CPU週期(一個沒有任何作用,只是吃掉它獲得的每個時間片的整體)。 I/O綁定的進程是常態,因爲它們通常會在它們進入等待狀態以等待任何類型的I/O時到期之前放棄它們的時間片。因此,設計將適應典型的進程類型,並懲罰CPU綁定進程(或線程,依賴於平臺),以便它們不會獨佔CPU。 – 2011-04-16 17:48:07