以及時處理系統(tǒng)內(nèi)部和外部的隨機事件,使系統(tǒng)能夠更加有效地發(fā)揮效能。
80x86系統(tǒng)中的中斷技術(shù)是由CPU的中斷管理機制、中斷控制器8259A和中斷處理程序共同實現(xiàn)的,稱之為中斷系統(tǒng)。它最多可以管理256種類型的中斷,能自動實現(xiàn)中斷源識別、中斷源優(yōu)先權(quán)判優(yōu)和中斷屏蔽等功能。
6.1.1 中斷與中斷系統(tǒng)的功能
所謂中斷,是指CPU在執(zhí)行程序的過程中,由于某種外部或內(nèi)部事件的作用(如外部設(shè)備請求與CPU傳送數(shù)據(jù)或CPU執(zhí)行程序出現(xiàn)了異常),強迫CPU停止當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)去為該事件服務(wù),待事件服務(wù)結(jié)束后,能自動地返回到被中斷的程序中繼續(xù)執(zhí)行。
中斷過程可以用來描述。當(dāng)CPU正在執(zhí)行現(xiàn)行程序A時,有一外部或內(nèi)部事件請求CPU處理,當(dāng)CPU響應(yīng)中斷請求后,中斷正在執(zhí)行的程序A而轉(zhuǎn)去為該事 件服務(wù),執(zhí)行一段事先編制好的中斷服務(wù)程序B;當(dāng)中斷服務(wù)程序B執(zhí)行結(jié)束后,又自動地返回到原來被中斷的現(xiàn)行程序A中繼續(xù)執(zhí)行。把能實現(xiàn)這一過程的技術(shù), 稱為中斷技術(shù)。
中斷技術(shù)是由硬件和軟件共同實現(xiàn)的,稱之為中斷系統(tǒng)。它應(yīng)具備如下功能。
(1)設(shè)置中斷源。系統(tǒng)中允許請求中斷的事件,并確定它們的中斷請求方式。
(2)中斷源識別。當(dāng)中斷源有請求時,CPU能夠正確地判別中斷源,并能夠轉(zhuǎn)去執(zhí)行相應(yīng)的中斷服務(wù)程序。
(3)中斷源判優(yōu)。當(dāng)有多個中斷源同時請求中斷時,系統(tǒng)能夠自動地進行中斷優(yōu)先權(quán)判優(yōu),當(dāng)前優(yōu)先權(quán)最高的中斷請求優(yōu)先得到CPU的響應(yīng)和處理。
(4)中斷與返回。能自動地處理中斷程序與被中斷程序之間的跳轉(zhuǎn)及斷點保護問題。
中斷技術(shù)是現(xiàn)代計算機系統(tǒng)中很重要的一項功能,可以應(yīng)用于以下幾個方面的處理。
1)故障檢測和自動處理
系統(tǒng)出現(xiàn)故障和程序執(zhí)行錯誤都是隨機事件,無法預(yù)料。如電源掉電、存儲器出錯、運算溢出等,采用中斷技術(shù)可以有效地進行系統(tǒng)的故障檢測和自動處理。
2)實時信息處理
在實時信息處理系統(tǒng)中,需要對采集的信息立即做出響應(yīng),以避免信息的丟失,可以采用中斷方式進行實時信息處理。
3)并行操作
當(dāng)外部設(shè)備與CPU以中斷方式傳送數(shù)據(jù)時,可以實現(xiàn)CPU與外部設(shè)備之間的并行操作,使系統(tǒng)更加有效合理地發(fā)揮效能和提高效率。
4)分時操作
現(xiàn)代操作系統(tǒng)具有多任務(wù)處理功能,使同一個微處理器可以同時運行多道程序,通過定時和中斷方式,將CPU按時間片分配給每道程序,從而實現(xiàn)多任務(wù)之間的定時切換和處理。
6.1.2 中斷源分類及其他
1.中斷源分類
能夠引起計算機中斷的事件稱為中斷源。在不同的計算機系統(tǒng)中,中斷源的設(shè)置與分類有所不同。按中斷源與CPU的位置關(guān)系,可分為外部中斷和內(nèi)部中斷兩大類。
1)外部中斷
外部中斷是指由外部設(shè)備通過硬件觸發(fā)請求的方式產(chǎn)生的中斷,亦稱硬件中斷。外部中斷又分為不可屏蔽中斷和可屏蔽中斷。
不可屏蔽中斷(NonMaskable Interrupt, NMI)的特點是CPU對它的請求的響應(yīng)是無條件的,一旦CPU查詢到NMI有請求,便 立即響應(yīng)。NMI在外部中斷源中優(yōu)先權(quán)級別最高,通常用于處理系統(tǒng)故障,如系統(tǒng)板上RAM的奇偶校驗錯、擴展槽中I/O通道錯和電源故障等。
可屏蔽中斷(Interrupt Reguest, INTR)的特點是CPU對它的請求的響應(yīng)是有條件的,受中斷允許標(biāo)志位(Interrupt Flag, IF)的控制。當(dāng)IF1,允許CPU響應(yīng)INTR請求;當(dāng)IF0,禁止CPU響應(yīng)INTR請求。INTR中斷通常用于CPU與外部設(shè)備,以中 斷方式進行I/O傳送。
2)內(nèi)部中斷
內(nèi)部中斷是由CPU運行程序錯誤或執(zhí)行內(nèi)部程序調(diào)用引起的一種中斷,亦稱軟件中斷。如在執(zhí)行程序過程中檢測到內(nèi)部異常,或執(zhí)行中斷指令I(lǐng)NT n產(chǎn)生的中斷。