中斷和異常

早期計算機(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ū)動程序的一部分。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容