1. 程式人生 > >linux中程式的執行順序及調整

linux中程式的執行順序及調整

我們在上一篇文章中知道通過ps -l等觀察系統中程式的指令就有一個PRI/NI是代表程式優先順序的,但是這個PRI是系統動態調整的決定的,我們使用者無權直接干涉PRI,但我麼可以通過Nice值去調整PRI,其關係是 PRI(new)=PRI(old)+nice,但是要注意,如果原本的PRI是50,並不是我們給一個nice=5就讓PRI變成55,雖然nice可以影響PRI,但是最終的PRI仍然是經過系統分析後才會決定的。另外,nice有正負,當你給nice一個負值,那麼PRI會降低,優先順序就會提高,但是要注意

(1)nice的可調整範圍是-20~19;

(2)root可以隨意調整自己或者他人程式的nice,範圍是-20~19

(3)一般使用者只能調整自己的nice值,且範圍是0——19(避免一般使用者搶佔系統資源)

那麼如果調整nice值呢,在上篇文章中在top顯示中,可以利用按鍵r重新設定已經存在的程式的nice值,另外,我們可以使用nice及renice指令。

nice :給新執行的指令給予新的nice值。用法是 nice [-n 數字] command   -n後面接一個數值,範圍是-20~19

例如,用root給一個nice為-5 用於執行vim命令  nice -n vim &


儘管這個nice值確實減少了5 ,但有時候沒有按他這個值減少也是正常的,因為設定nice值後還會經過系統的動態調整,最後別忘了用kill將他關閉。

那麼什麼時候會將nice值調大呢,一般是這樣的:對於一些背景中執行的不太重要的,例如備份,這樣的程式很耗系統資源,將他調大一點可以使系統資源分配更為合理。

renice:給已經存在的程式調整PRI   renice [number] PID

例如先找出自己的bash PID再將該PID的nice調到10.


可以看到隨便調整的是bash的PRI,但是由他觸發的ps相應的nice也為10,可知,nice值可以在父親程式->子程式間傳遞。