計算機作業系統(二)——中斷
阿新 • • 發佈:2019-01-29
中斷
定義
廣義和狹義
- 廣義:程式執行過程中,遇到急需處理的事件時,暫時中止CPU上現行程式的執行,轉去執行相應的事件處理程式,待處理完成後再返回原程式被中斷處或排程其他程式執行的過程。
- 作業系統是“中斷驅動”的,中斷是啟用作業系統的唯一方式。
- 狹義:處理器之外的中斷事件,與當前執行指令無關的中斷事件。I/O中斷、時鐘中斷、外部訊號中斷。
異常
- 當前執行指令引起的中斷事件。地址異常、算術異常、處理器硬體故障。
- 系統異常:執行陷入指令而觸發系統呼叫引起的中斷事件。請求裝置、請求I/O、建立程序。
由處理器、記憶體儲器、匯流排等硬體故障引起
處理原則:
- 保護現場
- 停止裝置
- 停止CPU
- 向操作員報告
- 等待人工干預
由處理器執行機器指令引起。
- 除數為0,運算元溢位等算術異常:簡單處理,報告使用者;由使用者編寫中斷續元程式處理
- 非法程式、使用者態使用特權指令、地址越界、非法存取等指令異常:終止程式
- 終止程序指令:終止程序
- 虛擬地址異常:調整記憶體後重新執行指令
處理器執行陷入指令請求OS服務引起的;在作業系統中,它一般又被稱作系統呼叫
- 請求分配外設、請求I/O等等
- 處理流程:陷入OS,保護現場,根據功能號查入口地址,跳轉具體處理程式
來源於外圍裝置報告I/O狀態的中斷
- I/O完成:調整程序狀態,釋放等待程序
- I/O出錯:等待人工干預
- I/O異常:等待人工干預
由外圍裝置發出的訊號引起的中斷事件
- 時鐘中斷、間斷時鐘中斷:記時與時間片處理
- 裝置報到與結束中斷:調整裝置表
- 鍵盤/滑鼠訊號中斷:根據訊號作出相應反應
- 關機/重啟動中斷:寫回檔案,停止裝置與CPU
過程
發現中斷源,提出中斷請求
- 發現中斷暫存器中記錄的中斷
- 決定這些中斷是否應該遮蔽
- 當有多個要響應的中斷源時,根據規定的優先順序選擇一個
中斷當前程式的執行
- 儲存當前程式的PSW/PC到核心棧
轉向作業系統的中斷處理程式
中斷的處理
中斷處理程式
- 作業系統處理中斷事件的控制程式,主要任務是處理中斷事件和恢復正常操作
中斷處理過程
- 保護未被硬體保護的處理器狀態
- 通過分被中斷程序的PSW中斷碼欄位,識別中斷源
- 分別處理髮生的中斷事件
- 恢復正常操作
- 對於某些中斷,在處理完畢後,直接返回剛剛被中斷的程序
- 對於其他一些中斷,需要中斷當前程序的執行,調整程序佇列,啟動程序排程,選擇下一個執行的程序並恢復其執行
系統處理流程
- 執行程序
- 在硬體中,發現中斷源,置中斷碼以備分析,交換新舊PSW
- 在作業系統中,保護未被硬體保護的現場資訊,分析中斷源,分別處理各類中斷事件
- 調整程序佇列,程序排程,恢復處理器現場資訊
- 恢復處理器現場資訊
- 在硬體中,恢復PSW
- 恢復程序
中斷遮蔽
- 當計算機檢測到中斷時,中斷裝置通過中斷遮蔽位決定是否響應已傳送的中斷
- 有選擇的響應中斷
中斷優先順序
- 當計算機同時檢測到多箇中斷時,中斷裝置響應中斷的順序
- 有優先度的響應中斷
- 一種可能的處理次序
- 處理機硬體故障中斷事件、自願性中斷事件、程式性中斷事件、時鐘中斷等外部中斷事件、輸入輸出中斷事件、重啟動和關機中斷事件
- 不同型別的作業系統有不同的中斷優先順序
中斷的巢狀處理
- 當計算機響應中斷後,在中斷處理過程中,可以再響應其他中斷
- 作業系統是效能攸關程式系統,且中斷響應處理有硬體要求,考慮系統效率和實現代價問題,中斷的巢狀處理應限制在一定層數內,如三層
- 中斷的巢狀處理改變中斷處理次序,先響應的有可能後處理
多中斷的響應與處理
決定中斷處理次序的因素
- 中斷遮蔽可以使中斷裝置不響應某些中斷
- 中斷優先順序決定了中斷裝置響應中斷的次序
- 中斷可以巢狀處理,但巢狀的層數應有限制
- 中斷的巢狀處理改變了中斷處理的次序
案例一
- X、Y兩個中斷同時發生
- 先響應X
- 因Y被遮蔽,繼續處理X
- 再響應並處理Y
案例二
- X、Y兩個中斷同時發生
- 根據中斷優先順序,先響應X
- 因未遮蔽Y,再響應並處理Y
- Y處理完成後,再處理X