早期計算機(jī),各程序只能串行執(zhí)行,系統(tǒng)資源利用率低。
為了解決上述問題,人民發(fā)明了操作系統(tǒng)(作為計算機(jī)的管理者),引入中斷機(jī)制,實現(xiàn)了多道程序并發(fā)執(zhí)行。
本質(zhì):發(fā)生中斷就意味著需要操作系統(tǒng)的介入,開展管理工作。
一、中斷的概念和作用
①當(dāng)中斷發(fā)生時,CPU立即進(jìn)入核心態(tài)
②當(dāng)中斷發(fā)生后,當(dāng)前運(yùn)行的進(jìn)程暫停運(yùn)行,并由操作系統(tǒng)內(nèi)核對中斷進(jìn)行處理。
③對于不同的中斷信號,會進(jìn)行不同的處理
發(fā)生了中斷,就意味著需要操作系統(tǒng)介入,開展管理工作。由于操作系統(tǒng)的管理工作(比如進(jìn)程切換,分配IO設(shè)備等)需要使用特權(quán)指令,因此CPU會由用戶態(tài)轉(zhuǎn)變成內(nèi)核態(tài)。中斷可以使CPU由用戶態(tài)轉(zhuǎn)變成內(nèi)核態(tài)。使操作系統(tǒng)獲得計算機(jī)的控制權(quán)。有了中斷才能實現(xiàn)多道程序并發(fā)執(zhí)行。
我們曾介紹過,CPU狀態(tài)分成兩種:核心態(tài)和用戶態(tài),?那么用戶態(tài)、核心態(tài)之間的轉(zhuǎn)換是通過什么來實現(xiàn)的?
用戶態(tài)->核心態(tài):中斷實現(xiàn),并且中斷是唯一的方式。
核心態(tài)->用戶態(tài):通過執(zhí)行一個特權(quán)指令,將程序狀態(tài)字(PSW)的標(biāo)志位置為用戶態(tài) 。
二、中斷的分類

通過”中斷信號來自CPU內(nèi)部/外部"這一點來判斷是內(nèi)中斷還是外中斷。
內(nèi)中斷亦可分為:陷入(trap),故障(fault)和終止(abort)。分別對應(yīng)指令中斷,硬件故障和軟件中斷。
三、外中斷的處理過程
CPU內(nèi)部處理應(yīng)用程序指令隊列時,如果中途遇到外部中斷信號(例如用戶通過鍵盤輸入一個字符)則會按下面步驟進(jìn)行處理:

產(chǎn)生中斷的每個設(shè)備都有一個相應(yīng)的中斷處理程序,一個設(shè)備的中斷處理程序是它設(shè)備驅(qū)動程序的一部分。