CPU不可中斷和殭屍程序

2021-09-10 16:58:02 字數 726 閱讀 1735

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程序對它們完成狀態收集工作。殭屍程序將會導致資源...