Linux核心 異常和中斷的區別

2021-06-18 01:52:15 字數 1116 閱讀 1543

相信大家都知道非常著名的兩個名詞:異常和中斷,不過,你真的理解這兩個名詞在說什麼嗎?它們之間有什麼區別呢?

1.中斷

大家都知道,當我們在敲擊鍵盤的同時就會產生中斷,當硬碟讀寫完資料之後也會產生中斷,所以,我們需要知道,中斷是由硬體裝置產生的,而它們從物理上說就是電訊號,之後,它們通過中斷控制器傳送給cpu,接著cpu判斷收到的中斷來自於哪個硬體裝置(這定義在核心中),最後,由cpu傳送給核心,有核心處理中斷。下面這張圖顯示了中斷處理的流程:

2.異常

我們在學習《計算機組成原理》的時候會知道兩個概念,cpu處理程式的時候一旦程式不在記憶體中,會產生缺頁異常;當執行除法程式時,當除數為0時,又會產生除0異常。所以,大家也需要記住的是,異常是由cpu產生的

,同時,它會傳送給核心,要求核心處理這些異常,下面這張圖顯示了異常處理的流程:

3.異同

相同點:

1> 最後都是由cpu傳送給核心,由核心去處理

2> 處理程式的流程設計上是相似的

不同點:

1> 產生源不相同,異常是由cpu產生的,而中斷是由硬體裝置產生的

2> 核心需要根據是異常還是中斷呼叫不同的處理程式

3> 中斷不是時鐘同步的,這意味著中斷可能隨時到來;異常由於是cpu產生的,所以,它是時鐘同步的

4> 當處理中斷時,處於中斷上下文中;處理異常時,處於程序上下文中

核心搶占和中斷(區別)

三 核心可搶占以及可搶占和可中斷的區別 四 搶占 五 中斷 搶占是核心對程序的管理 當高優先順序的任務因中斷而成為就緒,特定的低優先順序程序將讓出cpu,而那個高優先順序的程序得到cpu。可以這樣 簡單地 說,中斷是因為硬體,而搶占是因為中斷帶來特定事件的發生。一般來說,cpu在任何時刻都處於以下三...

Linux核心啟動 異常和中斷服務程式的掛接

1.初始化idt 直達底部 作業系統需要經常處理中斷或異常。中斷技術也是廣泛使用的,系統呼叫就是利用中斷技術實現的。中斷 異常都需要具體的服務程式來執行。trap init 函式將中斷 異常處理的服務 程式與idt進行掛接來逐步重建中斷服務體系。如下 舉個例子,n是0 gate addr是 idt ...

Linux 2 6 核心閱讀筆記 中斷和異常

2014年7月24日 中斷門 陷阱門及中斷門 中斷是可以禁止的,可以通過告訴pic停止對某個中斷的發布。被禁止的中斷是不會丟失的,在解除禁止後又會傳送到cpu上。禁止中斷和遮蔽 mask 中斷的不同之處是遮蔽是忽略掉某個中斷,而禁止相當於延遲傳送。intel提供了三種型別的中斷描述符 任務門 中斷門...