1. 程式人生 > >個人理解,中斷上半部,下半部,硬中斷,軟中斷

個人理解,中斷上半部,下半部,硬中斷,軟中斷

中斷上半部分與中斷下半部分對比

在中斷處理程式中,既想讓程式執行的快,又想讓程式完成的工作量多,這兩個目的有抵觸。

鑑於這兩個目的不可調和的矛盾,中斷處理可以分為兩部分:

中斷處理工作,例如對接收中斷進行中斷或復位硬體,這些工作都在所有中斷被禁止的情況下完成。可以稍後完成的工作推遲到下半部,在合適的情況下執行下半部分中斷。

example;

當網絡卡接收流入網路的資料包時,需要通知核心資料包到了,網絡卡需要立即完成這件事,從而優化網路的吞吐量和傳輸週期,以避免超時。因此網絡卡立即發出中斷,通知核心這裡有最新的資料包。核心通過執行網絡卡已註冊的中斷處理程式作出應答。中斷開始執行,應答硬體,複製最新的網路資料包到記憶體,然後讀取網絡卡更多的資料包,這些都是重要的、緊迫的、又與硬體相關的的工作。處理和操作其他資料包的其他工作在隨後的下半部分進行。

中斷下半部

下半部分執行的任務是執行與中斷處理密切相關,但中斷處理程式本身不執行的工作。和上半部分只能通過中斷處理程式實現不同,下半部分可以通過多種機制實現

一般硬中斷基本為中斷的上半部分,軟中斷和tasklet是中斷的下半部分,將上半部分沒有實現完的處理繼續執行。

中斷:

中斷使得硬體得以和處理器進行通訊,中斷是一種電訊號,由硬體裝置生成,並且直接送到中斷控制器的輸入引腳上,然後再由中斷控制器向處理器發出相應的訊號。處理器檢測到此訊號,便中斷自己當前工作進行適當的處理。處理器便會通知作業系統已經產生中斷,這樣,作業系統就可以對這個中斷進行適當的處理了。不同的裝置對應的中斷不同,而每個中斷都通過一個唯一的數字標識。

因此,來自鍵盤的中斷就有別於來自硬碟的中斷,從而使得作業系統能夠對中斷進行區分,並知道哪個硬體裝置產生了哪個中斷。這樣作業系統才能給中斷提供不同的處理程式。