部分摘自:
中斷:所謂中斷就是指cpu在正常執行程式的時候,由於內部/外部事件的出發、或由程式預先設定而引起cpu暫時中止當前正在執行的程式,儲存被執行程式相關資訊到棧中,轉而去執行為內部/外部事件、或由程式預先設定的事件的中斷服務子程式,待執行完中斷服務子程式後,cpu再獲取被儲存在棧中被中斷的程式的資訊,繼續執行被中斷的程式,這一過程叫做中斷。
中斷向量:中斷服務程式的入口位址。
中斷向量表:把系統中所有的中斷型別碼及其對應的中斷向量按一定的規律存放在乙個區域內,這個儲存區域就叫做中斷向量表。
中斷源:ia32中有三大類中斷源:
1、軟中斷/內中斷。
2、外中斷/硬體中斷
3、異常
中斷處理過程:
請求中斷→響應中斷→關閉中斷→保留斷點→中斷源識別→保護現場→中斷服務子程式→恢復現場→中斷返回。
(1)某一中斷源向cpu發起中斷請求,對於外部中斷cpu在當前指令最後乙個時鐘週期查詢中斷請求訊號的
有效性,在系統開中斷的情況下,cpu向中斷源回送中斷應答訊號,系統進入中斷響應週期。(cpu對
系統內部
中斷源提出的中斷請求必須響應,而且自動取得中斷服務子程式的入口位址,執行中斷服務
子程式);
(2)cpu響應中斷後,將狀態標誌暫存器壓入堆疊保護;
(3)再將
其中的中斷標誌位清除從而關閉中斷;
(4)cpu將當前cs(**段位址)和ip(將要執行的下一條位址)壓入堆疊保護斷點;
(5)cpu確定提出請求的中斷源,獲得中斷向量號,在對應的中斷向量表獲得中斷入口位址,
裝入cs和ip中;
(6)將斷點處各暫存器的內容壓入堆疊保護現場;
(7)此時程式跳轉至中斷服務子程式執行;
(8)中斷處理完畢,將堆疊各暫存器內容彈棧,恢復斷點處各暫存器的值;
(9)在中斷服務子程式最後安排一條返回指令,執行該指令將堆疊中cs和ip的值彈出,恢復主程式
斷點處位址值,同時恢復標誌暫存器的內容。程式轉至被中斷的程式繼續執行。
中斷及中斷處理過程
1.中斷和異常的概念區別 intel的官方文件裡將中斷和異常理解為兩種中斷當前程式執行的不同機制。這是中斷和異常的共同點。不同點在於 中斷 interrupt 是非同步的事件,典型的比如由i o裝置觸發 異常 exception 是同步的事件,典型的比如處理器執行某條指令時發現出錯了等等。中斷又可以...
中斷及中斷處理過程
from 中斷及中斷處理過程 1.中斷和異常的概念區別 intel的官方文件裡將中斷和異常理解為兩種中斷當前程式執行的不同機制。這是中斷和異常的共同點。不同點在於 中斷 interrupt 是非同步的事件,典型的比如由i o裝置觸發 異常 exception 是同步的事件,典型的比如處理器執行某條指...
Linux中斷處理過程
如圖所示,完整的中斷系統由兩部分組成 硬體電路和軟體處理。1.硬體電路產生irq訊號。2.可程式設計中斷控制控制器 pic 收集irqn值,轉換成相應的向量。3.pic將中斷向量由int傳送到cpu,進入軟體中斷處理。1.初始化階段向linux核心註冊中斷處理程式。2.中斷發生時,通過中斷描述符表i...