每個進程中都有一個進程控制塊--PCB。PCB--維護進程相關的信息。然而,linux內核的進程控制塊就是task_struct結構體,它可以保存進程的信息。
所有運行在系統里的進程都以task_struct鏈表的形式存在內核里。
每個進程都將它的信息放在task_struct結構體中,既然它是一個結構體,那么它里邊包含些什么內容呢?
》》
1.進程標識符:
pid:進程
ppid:父進程
ppid ? ? ? ? pid
運行(R)的為父進程;僵死狀態(Z)的為子進程。
2.進程狀態:
常見的進程狀態有:R(運行狀態),S(可中斷的休眠狀態),D(不可中斷的休眠狀態),T(停止狀態),t(暫停狀態),
x(死亡狀態),Z(僵死狀態)
s:
3.進程優先級:
進程cpu資源分配的優先。進程的優先級的值越小,越早被執行。用PRI來表示。。
在這里,還有一個概念是NI。
NI是不是優先級呢?當然不是啦。但是它是影響優先級變化的一個因素(nice(nice -n -5 +可執行程序名),renice(renice -5 -p +進程號))。公式這樣來表示:PRI(new)=PRI(old)+nice。
nice的使用:
nice -n -5 +可執行程序 ?就可以改變它的優先級啦。
還是舉個例子吧:
按照上面的步驟執行,最終就通過nice將它的優先級改變了哦。
當然你想改變它的優先級只需要調整nice的大小即可。