操作系统(五)中断和异常
1.5 中斷和異常
? ?在上節(jié)內(nèi)核態(tài)與用戶態(tài)的轉(zhuǎn)換過程中曾經(jīng)提到過,操作系統(tǒng)會響應中斷信號強制奪回CPU使用權,使用戶態(tài)轉(zhuǎn)換為內(nèi)核態(tài)。“中斷”是操作系統(tǒng)奪回CPU使用權的唯一方式,如果沒有“中斷”機制,那么一旦應用程序上CPU運行,CPU就會一直運行這個應用程序,其他程序就沒有辦法再使用CPU,這樣的話就不存在并發(fā)機制了。一般來說,中斷分為兩種情況即內(nèi)中斷和外中斷。
目錄
1.5 中斷和異常
1.5.1 內(nèi)中斷
1.5.2 外中斷
1.5.3 中斷的分類
1.5.1 內(nèi)中斷
? 內(nèi)中斷(也稱異常)與當前執(zhí)行的指令有關,中斷信號來源于CPU內(nèi)部。比如,當用戶妄圖執(zhí)行特權指令時,CPU便會產(chǎn)生中斷,由用戶態(tài)變?yōu)閮?nèi)核態(tài);再比如,當進行除法運算除數(shù)為0時同樣會發(fā)生錯誤,產(chǎn)生中斷。總的來說,就是當前指令是非法的指令,那么一定會引起中斷。
? 當應用程序想要進行一次系統(tǒng)調(diào)用使用內(nèi)核的服務時,會執(zhí)行一條陷入(trap)指令,陷入指令會引發(fā)一條中斷信號,操作系統(tǒng)就會奪回CPU的使用權,也就是說,執(zhí)行“陷入指令”,意味著應用程序主動地將CPU控制權還給操作系統(tǒng)內(nèi)核。
1.5.2 外中斷
? 外中斷與當前執(zhí)行的指令無關,中斷信號來源于CPU外部。每次在一條指令結(jié)束之后CPU都會檢查是否有外中斷信號。比如時鐘信號,或者I/O設備都可以發(fā)出外中斷信號。
1.5.3 中斷的分類
? ? 中斷的原理:不同的中斷信號,需要用不同的中斷處理程序來處理。當CPU檢測到中斷信號后,會根據(jù)中斷信號的類型去查詢“中斷向量表”,以此來找到相應的中斷處理程序在內(nèi)存中的存放位置。所以,顯然中斷處理程序一定是內(nèi)核程序,工作在內(nèi)核態(tài)。
總結(jié)
以上是生活随笔為你收集整理的操作系统(五)中断和异常的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021零售行业营销自由白皮书
- 下一篇: 操作系统(六)系统调用