中斷/異常/陷入機制是操作系統由用戶態轉為內核態的唯一途徑,是操作系統的驅動力。
中斷、異常機制有以下特征:
- 隨機發生
- 自動處理(硬件完成)
- 可恢復
中斷、異常的區別:
- 中斷屬外部事件,是正在運行的程序所不期望的
- 異常由正在執行的指令引發
在中斷、異常過程中,軟件和硬件分別擔任什么角色:
- 硬件--中斷/異常響應
- 軟件--中斷/異常處理程序
中斷/異常的引入目的:
- 中斷的引入是為了CPU與設備之間的並行操作
- 異常的引入是為了表示CPU執行指令時本身出現的問題
一個故事:小明在看書,突然來了個電話,接完電話繼續看書,這是中斷;小明在看書,感覺口渴了,喝了水接着看書,這是異常。
類別 | 原因 | 同步/異步 | 返回行為 | |
中斷 | 中斷(interrupt) | 來自I/O設備或其他硬件部件 | 異步 | 總是返回到下一條指令 |
異常 | 陷入(trap) |
有意識安排的 | 同步 | 返回到下一條指令 |
故障(fault) | 可恢復的錯誤 | 同步 | 返回到當前指令 | |
終止(abort) | 不可恢復的錯誤 | 同步 | 不會返回 |
故障與陷入:
- 缺頁異常(page fault),由於是fault,所以當缺頁異常處理完成之后,還會去嘗試重新執行那條觸發異常的指令(那時多半情況是不再缺頁)
- 斷點處理,用於調試中,遇到斷點會停下來等待你的處理,等到你讓其重新執行了,就直接執行下一條指令
完、