定義:
所謂的中斷是在計(jì)算機(jī)執(zhí)行程序的過(guò)程中,由于出現(xiàn)了某些特殊的事情,使得CPU暫停對(duì)程序的執(zhí)行,轉(zhuǎn)而去執(zhí)行處理這一事件的程序。
分類:
- 內(nèi)部異常中斷:由于計(jì)算機(jī)硬件異常或故障引起的中斷,比如電腦斷電。屬于不可屏蔽中斷。
- 軟中斷:由于程序中執(zhí)行了引起中斷的指令而造成的中斷。
- 外部中斷:由外部設(shè)備請(qǐng)求引起的中斷,比如鍵盤中斷。外部中斷是可以屏蔽的中斷,也就是說(shuō),利用中斷控制器可以屏蔽這些外部設(shè)備的中斷。
中斷處理程序:
當(dāng)中斷發(fā)生的時(shí)候,系統(tǒng)需要去對(duì)中斷進(jìn)行處理,對(duì)這些中斷的處理是由操作系統(tǒng)內(nèi)核中的特定函數(shù)進(jìn)行的,這些處理中斷的函數(shù)就是我們所說(shuō)的中斷處理程序。
中斷的優(yōu)先級(jí):
中斷的優(yōu)先級(jí)表明中斷需要被處理的緊急程度。每個(gè)中斷都有一個(gè)對(duì)應(yīng)的優(yōu)先級(jí),當(dāng)處理器在處理某一中斷的時(shí)候,只有比這個(gè)中斷優(yōu)先級(jí)高的中斷才可以被處理器接受并處理。
例子:
機(jī)器錯(cuò)誤 > 時(shí)鐘 > 磁盤 > 網(wǎng)絡(luò)設(shè)備 > 終端 > 軟件中斷
當(dāng)發(fā)生軟件中斷時(shí),其他所有的中斷都可能發(fā)生并被處理;但當(dāng)發(fā)生磁盤中斷時(shí),就只有時(shí)鐘中斷和機(jī)器錯(cuò)誤中斷能被處理了。
中斷模式:
中斷模式時(shí)就是說(shuō)CPU不主動(dòng)訪問(wèn)這些設(shè)備,只管處理自己的任務(wù)。如果有設(shè)備要與CPU聯(lián)系,或要CPU處理一些事情,它會(huì)給CPU發(fā)一個(gè)中斷請(qǐng)求信號(hào)。這時(shí)CPU就會(huì)放下正在進(jìn)行的工作而去處理這個(gè)外設(shè)的請(qǐng)求。處理完中斷后,CPU返回去繼續(xù)執(zhí)行中斷以前的工作。
中斷的優(yōu)點(diǎn):
可以使CPU和外設(shè)同時(shí)工作,使系統(tǒng)可以及時(shí)地響應(yīng)外部事件。
可以允許多個(gè)外設(shè)同時(shí)工作,提高了CPU的利用率,也提高了數(shù)據(jù)輸入和輸出。
可以使CPU及時(shí)處理各種軟硬件故障。