top時s列為程序的狀態:
r:執行狀態
i:空閒狀態
d:不可中斷狀態,程序正在和硬體互動,為了保護硬體,處於不可中斷狀態。
z:殭屍狀態,實際上程序已經結束,但父程序沒有**資源。
s:睡眠狀態,可中斷。
t:暫停狀態,程序收到sin_stop訊號暫停。除錯加斷點的時候,程序就處於這種狀態。
x:程序已經掛掉。
大量不可中斷狀態,系統或硬體出現故障,可能會出現,檢查io問題。
殭屍狀態:
1、父程序建立子程序後,沒有呼叫wait等待,
2、子程序結束會給父程序傳送sig_children,父程序沒有接受此sig_children處理。
3、或者子程序結束太快,父程序沒得及做以上2步操作。
當父程序結束,殭屍子程序會被init**。
當父程序長期不結束,殭屍子程序也會長期存在。
dstat 檢視系統的io情況。
訊號中斷(軟中斷)
本質上是一種非同步處理機制。
中斷被分成上下兩部分處理。
上部分:硬中斷,直接處理硬體情況,反應很快。
下部分:軟中斷,為核心執行緒,反應相對不如上中斷快。
每個cpu都有1個軟中斷核心執行緒,名字為ksoftirqd/0 。
硬中斷一般對應各種io問題。
軟中斷發生頻率過高,核心執行緒會因為cpu使用率過高,導致軟中斷處理不及時,造成各種問題,像網路延時,排程緩慢等效能問題。
Linux學習 9 24 不可中斷程序 殭屍程序
通過top命令檢視程序狀態,其中s列表示程序狀態。s列的取值d是disk sleep的縮寫,即不可中斷狀態睡眠,一般表示程序正在跟硬體互動,並且互動過程不允許被其他程序或中斷打斷。不可中斷狀態時為了保證程序資料與硬體狀態一致,並且正常情況下,不可中斷狀態在很短時間內就會結束。所以短時的不可中斷狀態程...
殭屍程序和如何刪除殭屍程序
當乙個子程序結束後,他的父程序沒有等待他 wait waitpid 清除他的所有資源時,它就變成乙個殭屍程序。在linux系統中,在每個程序退出的時候,核心釋放該程序所有的資源,包括開啟的檔案,占用的記憶體等。但是仍然為其保留一定的資訊 包括程序號the process id,退出狀態the ter...
殭屍程序和孤兒程序
殭屍程序 乙個子程序在其父程序還沒有呼叫wait 或waitpid 的情況下退出。這個子程序就是殭屍程序。孤兒程序 乙個父程序退出,而它的乙個或多個子程序還在執行,那麼那些子程序將成為孤兒程序。孤兒程序將被init程序 程序號為1 所收養,並由init程序對它們完成狀態收集工作。殭屍程序將會導致資源...