中斷和異常:
中斷通常分為同步中斷和非同步中斷。
同步中斷:當指令執行時由cpu控制單元產生的,稱為同步,是因為只有當一條指令終止執行後cpu才會發出中斷。
非同步中斷:由其他硬體裝置依照cpu時鐘訊號隨機產生的。
在inter微處理器手冊上,將同步中斷稱為異常;將非同步中斷稱為中斷。
異常和中斷向量:
每個需要被處理器進行特殊處理的中斷和異常都被賦予了乙個中斷向量,該向量用作中斷描述符表idt的索引值,來定位乙個異常和中斷的處理程式的入口位址。
中斷向量號的範圍為0~256,其中0~31保留用作80x86處理器定義的異常和中斷,32~255的向量號用於使用者定義的中斷。
異常和中斷源:
中斷源:
1. 外部中斷(硬體中斷)
2. 軟體中斷
硬體中斷通過處理器晶元上的intr和nmi引腳接收。
軟體中斷通過執行指令int觸發。
eflags中的if位不能夠影響軟體中斷。
異常源:
1. 處理器檢測到程式異常
2. 軟體產生的異常
異常的分類與處理:
異常被細分為故障、陷阱和終止。
1. 故障異常發生後程式仍然可以繼續執行。故障異常發生後,處理器會把把引起故障異常的指令執行之前的狀態恢復,執行完故障處理子程式後,處理器重新執行引起故障的指令。如頁面故障。
2. 陷阱異常是乙個引起陷阱的指令被執行後立刻會報告的異常。陷阱異常處理子程式的返回位址執行引起異常的指令的下一條指令。
3. 終止異常是一種不會報告導致異常指令的精確位置的異常。並且不允許導致異常的程式重新執行,用於報告嚴重的錯誤。
作業系統保護模式Protected Mode
保護模式,是一種80286系列和之後的x86相容 cpu操作模式。保護模式有一些新的特色,設計用來增強 多工和系統穩定度,像是 記憶體保護,分頁系統,以及硬體支援的 虛擬記憶體。大部分的現今 x86 作業系統 都在保護模式下執行,包含 linux freebsd 以及 微軟windows 2.0 和...
《自已動手寫作業系統》學習扎記之保護模式
自已動手寫作業系統 學習扎記之保護模式 x86 學完這一章後,我嘗試來好好總結一下,發現在很難做到,因為相關的細節牽扯比較多,一不小心就必須要到具體的實現細節,而要了解這些細節intel 開發手冊已有清晰的描述 下面以問題的方式要來記錄一下自已的一些體會 1.為什麼需要保護模式?這跟作業系統歷史的發...
作業系統 認識認識保護模式(三)中斷
理解中斷與異常的機制 除錯8259a的程式設計基本例程 除錯時鐘中斷例程 建立idt,實現乙個自定義的中斷,功能可自定義,如特定鍵盤組合觸發某個動作 電子鐘 自己遊走的字元顯示 蜂鳴器等 了解iopl的作用 理解中斷與異常的機制 除錯8259a的程式設計基本例程 除錯時鐘中斷例程 建立idt,實現乙...