2011-09-03 87 views
11

這兩者有什麼重大區別?有沒有什麼可以在一個而不是另一箇中完成?在修改例如頁面錯誤處理程序而不是定時器處理程序時,我需要多加小心嗎?中斷和異常上下文有什麼區別?

回答

14

中斷是一種異步事件,通常由硬件(Ex,I/O)生成,與處理器指令執行不同步。異常是處理器在執行指令時檢測到任何預定義條件時生成的同步事件。

中斷處理程序可能會被另一箇中斷處理程序中斷等等。中斷處理程序可以推遲異常處理程序,但異常處理程序絕不會延遲中斷處理程序。內核模式唯一可能的例外是頁面錯誤。

中斷處理程序從不執行可能導致頁面錯誤並因此可能調度的操作。如果它們引起頁面錯誤,則意味着它是一個錯誤。

寫入/修改中斷處理程序時需要小心

2

中斷和異常都會改變程序流。 差異 之間的差異是中斷用於處理 外部事件 (串口,鍵盤)和異常用於處理指令 錯誤(除零,未定義的操作碼)。

中斷處理完成 當前 指令。如果在其中斷引腳上發現一個信號,它將在中斷表 中查找中斷處理程序的地址 ,並通過 進行例程控制。從中斷 處理程序 例程返回後,它將在 中斷指令之後的指令處繼續執行程序指令 。

另一方面的例外情況分爲三種。 這些是 故障,陷阱和中止。在發生故障指令之前, 處理器檢測並處理故障 。陷阱是 服務後 導致陷阱的說明。用戶定義的中斷 進入這個 類別,可以說是陷阱;例如,這包括MS- DOS INT 21h 軟件中斷。中止僅用於 信號嚴重 系統問題,當操作不再可能時。

Research at:http://www.allinterview.com/showanswers/14289.html