什麼是中斷?先打個比方。當一個經理正處理文件時,電話鈴響了(中斷請求),不得不在文件上做一個記號(返 回地址),暫停工作,去接電話(中斷),並指示“按第二方案辦”(調中斷服務程序),然後,再靜下心來(恢復中 斷前狀態),接著處理文件……。計算機科學家觀察了類似實例,“外師物化,內得心源”,借用了這些思想、處理方 式和名稱,研制了一系列中斷服務程序及其調度系統。
中斷是CPU處理外部突發事件的一個重要技術。它能使CPU在運行過程中對外部事件發出的中斷請求及時地進行處理, 處理完成後又立即返回斷點,繼續進行CPU原來的工作。引起中斷的原因或者說發出中斷請求的來源叫做中斷源。 根據 中斷源的不同,可以把中斷分為硬件中斷和軟件中斷兩大類,而硬件中斷又可以分為外部中斷和內部中斷兩類。
外部中斷一般是指由計算機外設發出的中斷請求,如:鍵盤中斷、打印機中斷、定時器中斷等。外部中斷是可以屏 蔽的中斷,也就是說,利用中斷控制器可以屏蔽這些外部設備的中斷請求。
內部中斷是指因硬件出錯(如突然掉電、奇偶校驗錯等)或運算出錯(除數為零、運算溢出、單步中斷等)所引起 的中斷。內部中斷是不可屏蔽的中斷。
軟件中斷其實並不是真正的中斷,它們只是可被調用執行的一般程序。例如:ROMBIOS 中的各種外部設備管理中斷 服務程序(鍵盤管理中斷、顯示器管理中斷、打印機管理中斷等),以及DOS的系統功能調用(INT 21H)等都是軟件中 斷。
CPU為了處理並發的中斷請求,規定了中斷的優先權/中斷優先權由高到低的順序是:
(1)除法錯、溢出中斷、軟件中斷
(2)不可屏蔽中斷
(3)可屏蔽中斷
(4)單步中斷。