基本含義
計算機科學術語.指處理機處理程式運行中出現的緊急事件的整個過程.程式運行過程中,系統外部、系統內部或者現行程式本身若出現緊急事件,處理機立即中止現行程式的運行,自動轉入相應的處理程式(中斷服務程式),待處理完後,再返回原來的程式運行,這整個過程稱為程式中斷;當處理機接受中斷時,只需暫停一個或幾個周期而不執行處理程式的中斷,稱為簡單中斷.中斷又可分為禁止中斷和非禁止中斷兩類.可由程式控制其禁止的中斷稱為禁止中斷或可禁止中斷.禁止時,處理機將不接受中斷.反之,不能由程式控制其禁止,處理機一定要立即處理的中斷稱為非禁止中斷或不可禁止中斷.非禁止中斷主要用於斷電、電源故障等必須立即處理的情況.處理機回響中斷時,不需執行查詢程式.由被回響中斷源向CPU發向量地址的中斷稱為向量中斷,反之為非向量中斷.向量中斷可以提高中斷回響速度。
分類
硬體中斷(Hardware Interrupt) :
•可禁止中斷(maskable interrupt)。硬體中斷的一類,可通過在中斷禁止暫存器中設定位掩碼來關閉。
•非可禁止中斷(non-maskable interrupt,NMI)。硬體中斷的一類,無法通過在中斷禁止暫存器中設定位掩碼來關閉。典型例子是時鐘中斷(一個硬體時鐘以恆定頻率—如50Hz—發出的中斷)。
•處理器間中斷(interprocessor interrupt)。一種特殊的硬體中斷。由處理器發出,被其它處理器接收。僅見於多處理器系統,以便於處理器間通信或同步。
•偽中斷(spurious interrupt)。一類不希望被產生的硬體中斷。發生的原因有很多種,如中斷線路上電氣信號異常,或是中斷請求設備本身有問題。
軟體中斷(Software Interrupt) :
•軟體中斷。是一條CPU指令,用以自陷一個中斷。由於軟中斷指令通常要運行一個切換CPU至核心態(Kernel Mode/Ring 0)的子例程,它常被用作實現系統調用(System call)。
防止方法
要防止中斷衝突,其實就是要知道什麼設備容易產生中斷衝突,只要知道了這點,在使用這些設備時稍微注意一下就可以了。下面我列出一些容易衝突的設備,希望對讀者有用。
1、音效卡:一些早期的ISA型音效卡,系統很有可能不認,就需要用戶手動設定(一般為5)
2、內置數據機和滑鼠:一般滑鼠用COM1,內置數據機使用COM2的中斷(一般為3),這時要注意此時COM2上不應有其它設備
3、網卡和滑鼠:此問題一般發生在滑鼠在COM1口,使用中斷為3,這時要注意通常網卡的默認中斷為3,兩者極有可能發成衝突。
4、印表機和EPP掃瞄器:在安裝掃瞄器驅動程式時應將印表機打開,因為兩個設備中串聯,所以為了防止以後掃瞄器驅動程式設定有誤,一定要將印表機打開再安裝掃瞄器驅動程式。
5、作業系統和BIOS:如果計算機使用了“即插即用”作業系統(例如win98),應將BIOS中PNP OS Installed設定為Yes這樣可讓作業系統重新設定中斷。
6、PS/2滑鼠和BIOS:在使用PS/2滑鼠時應將BIOS中PS/2 Mouse Function Control打開或設定為Auto,只有這樣BIOS才能將IRQ12分配給PS/2滑鼠用。
功能
現代計算機中採用中斷系統的主要目的是 :
①提高計算機系統效率。計算機系統中處理機的工作速度遠高於外圍設備的工作速度。通過中斷可以協調它們之間的工作。當外圍設備需要與處理機交換信息時,由外圍設備向處理機發出中斷請求,處理機及時回響並作相應處理。不交換信息時,處理機和外圍設備處於各自獨立的並行工作狀態。
②維持系統可靠正常工作。現代計算機中,程式設計師不能直接干預和操縱機器,必須通過中斷系統向作業系統發出請求,由作業系統來實現人為干預。主存儲器中往往有多道程式和各自的存儲空間。在程式運行過程中,如出現越界訪問,有可能引起程式混亂或相互破壞信息。為避免這類事件的發生,由存儲管理部件進行監測,一旦發生越界訪問,向處理機發出中斷請求,處理機立即採取保護措施。
③滿足實時處理要求。在實時系統中,各種監測和控制裝置隨機地向處理機發出中斷請求,處理機隨時回響並進行處理。
④提供故障現場處理手段。處理機中設有各種故障檢測和錯誤診斷的部件,一旦發現故障或錯誤,立即發出中斷請求,進行故障現場記錄和隔離,為進一步處理提供必要的依據。
中斷優先權
在某一時刻有幾個中斷源同時發出中斷請求時,處理器只回響其中優先權最高的中斷源。當處理機正在運行某箇中斷服務程式期間出現另一個中斷源的請求時,如果後者的優先權低於前者,處理機不予理睬,反之,處理機立即回響後者,進入所謂的“嵌套中斷”。中斷優先權的排序按其性質、重要性以及處理的方便性決定,由硬體的優先權仲裁邏輯或軟體的順序詢問程式來實現 。
中斷過程
按照事件發生的順序,中斷過程包括 :
①中斷源發出中斷請求;
②判斷當前處理機是否允許中斷和該中斷源是否被禁止;
③優先權排隊;
④處理機執行完當前指令或當前指令無法執行完,則立即停止當前程式,保護斷點地址和處理機當前狀態,轉入相應的中斷服務程式;
⑤執行中斷服務程式;
⑥恢復被保護的狀態,執行“中斷返回”指令回到被中斷的程式或轉入其他程式。
上述過程中前四項操作是由硬體完成的,後兩項是由軟體完成的。
向量中斷
對應每箇中斷源設定一個向量。這些向量順序存在主存儲器的特定存儲區。向量的內容是相應中斷服務程式的起始地址和處理機狀態字。在回響中斷時,由中斷系統硬體提供向量地址,處理機根據該地址取得向量,並轉入相應的中斷服務程式 。