在linux系統上,經常是用ps aux |grep *
來搜尋系統中程序的狀態,使用最多的是檢視程序pid,但很多列項中,除了程序pid外其餘的各項都代表了什麼呢?可參看如下:
[root@localhost etc]# ps aux
user pid %cpu %mem vsz rss tty stat start time command
root 1 0.0 0.0 2052 616 ? ss jul03 0:00 init [3]
root 2 0.0 0.0 0 0 ? s jul03 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? sn jul03 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? s jul03 0:00 [watchdog/0]
root 5 0.0 0.0 0 0 ? s< jul03 0:00 [events/0]
root 6 0.0 0.0 0 0 ? s< jul03 0:00 [khelper]
root 7 0.0 0.0 0 0 ? s< jul03 0:00 [kthread]
...
如上每一列的縮寫,代表了每一列的含義。
下面對stat
項的具體含義詳細分析如下:
d 不可中斷 uninterruptible sleep (usually io)
r 正在執行,或在佇列中的程序
s 處於休眠狀態
t 停止或被追蹤
z 殭屍程序
w 進入記憶體交換(從核心2.6開始無效)
x 死掉的程序 (基本很少見)
< 高優先順序的程序
n 低優先順序的程序
l 有些頁被鎖進記憶體
s 包含子程序
+ 位於後台的程序組;
l 多執行緒,轉殖執行緒 multi-threaded (using clone_thread, like nptl pthreads do)
ps aux詳解(程序狀態說明)
linux上程序有5種狀態 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,受阻,在等待某個條件的形成或接受到訊號 3.不可中斷 收到訊號不喚醒和不可執行,程序必須等待直到有中斷發生 4.僵死 程序已終止,但程序描述符存在,直到父程序呼叫wait4 系統呼叫後釋放 5.停止 程序收到sigs...
程序與執行緒 1 程序狀態 PCB
參考哈工大李治軍老師公開課。程序 就是正在被計算機執行的程式,比如word,ppt等,都是乙個程序。計算機系統在某乙個時刻,當只有乙個cpu工作時,它只執行乙個程序,但是使用者在使用計算機時回開啟多個進行,這樣就涉及到了程序的不同狀態。程序可以被分為5個狀態,分別是 新建態 就緒態 執行態 終止態 ...
程序管理 七 程序狀態與轉換
乙個程序的生命期可以劃分為一組狀態,這些狀態刻劃了整個程序。系統根據pcb 結構中的狀態值控制程序。在程序的生命期內,乙個程序至少具有三種基本狀態 執行狀態 等待狀態和就緒狀態。單cpu系統中,任一時刻處於執行狀態的程序只能有乙個。就緒狀態的程序已經得到除 cpu之外的其他資源,只要經由排程得到處理...