Linux中斷處理過程

2021-05-23 00:38:56 字數 321 閱讀 3452

如圖所示,完整的中斷系統由兩部分組成:硬體電路和軟體處理。

1.硬體電路產生irq訊號。

2.可程式設計中斷控制控制器(pic)收集irqn值,轉換成相應的向量。

3.pic將中斷向量由int傳送到cpu,進入軟體中斷處理。

1.初始化階段向linux核心註冊中斷處理程式。

2.中斷發生時,通過中斷描述符表idt獲取中斷服務例程(isr)鍊錶入口。

3.呼叫do_irq()程式,獲取action的指標,並查詢對應dev_id裝置狀態,找到處於中斷的裝置,然後呼叫註冊的中斷處理程式。

整個中斷處理的流程,可簡單表示為:

Linux中斷處理過程

中斷被觸發後首先通知到的是cpu 1.cpu需要判斷自己當前所處的模式,根據cpl暫存器的值執行不同操作。如果cpl表明目前正處於核心態,則不需要作切換,相反,如果cpl表明目前是使用者態,那麼需要將自己標為標為核心態。當然,在標記自己之前,必然會存在一些暫存器的儲存以便日後恢復。2.需要做一些現場...

中斷處理過程

部分摘自 中斷 所謂中斷就是指cpu在正常執行程式的時候,由於內部 外部事件的出發 或由程式預先設定而引起cpu暫時中止當前正在執行的程式,儲存被執行程式相關資訊到棧中,轉而去執行為內部 外部事件 或由程式預先設定的事件的中斷服務子程式,待執行完中斷服務子程式後,cpu再獲取被儲存在棧中被中斷的程式...

中斷及中斷處理過程

1.中斷和異常的概念區別 intel的官方文件裡將中斷和異常理解為兩種中斷當前程式執行的不同機制。這是中斷和異常的共同點。不同點在於 中斷 interrupt 是非同步的事件,典型的比如由i o裝置觸發 異常 exception 是同步的事件,典型的比如處理器執行某條指令時發現出錯了等等。中斷又可以...