一、中斷/異常機制
中斷/異常: 對於操作系統的重要性就好比汽車的發動機
操作系統是由“中斷驅動”或者“事件驅動”的
主要作用:
1.及時處理設備發來的中斷請求
2.可使OS捕獲用戶程序提出的服務請求
3.防止用戶程序執行過程中的破壞性活動
4.等等
引入的原因:
1.中斷的引入:爲了支持CPU和設備之間的並行操作
2.異常的引入:表示CPU執行指令時本身出現的問題(算術溢出。地址越界等)
二、中斷/異常的概念
1.CPU對系統發生的某個事件作出的一種反應
2.CPU暫停正在執行的程序,保留現場後自動轉去執行相應事件的處理程序,處理完成後返回斷點,繼續執行被打斷的程序。
注意:
1.事件的發生改變了處理器的控制流
2.特點:是隨機發生的;是自動處理的;是可恢復的
三、事件
中斷:外部事件,正在運行的程序所不期望的
異常:由正在執行的指令引發的
- 中斷(外中斷):I/O中斷;時鐘中斷;硬件中斷
- 異常(內中斷):系統調用;頁故障/頁錯誤;保護性異常;斷點指令;其他程序性異常
五、中斷異常機制的工作原理
中斷/異常機制是現代計算機系統的核心機制之一
硬件和軟件的相互配合使計算機系統得以充分的發揮能力
- 硬件的任務——中斷/異常的響應
捕獲中斷源發出的中斷/異常請求,以一定的方式響應,將處理器的控制權交給特定的處理程序。
- 軟件的任務——中斷/異常處理程序
5.1. 中斷響應
中斷響應: 發現中斷、接收中斷的過程,有中斷硬件部件完成。
處理器控制部件中設有中斷寄存器
中斷先用過程示意圖
5.2. 中斷向量表
中斷向量: 一個內存單元、存放中斷處理程序的入口地址和程序運行所需的處理機狀態字。
執行流程按中斷/異常類型的不同,通過中斷向量錶轉移控制權給中斷處理程序。
中斷響應示意圖
5.3. 中斷處理程序
1.設計操作系統時,爲每一類中斷/異常時間編好相應的處理程序,並設置好中斷向量表
2.系統運行時若相應中斷,中斷硬件不見將CPU控制權轉給中斷處理程序:
- 保存相關寄存器信息
- 分析中斷/異常的具體原因
- 執行對應的處理功能
- 恢復現場,返回被事件打斷的程序
6.例子
I/0中斷處理程序(軟件控制)