【OS学习笔记】三十四 保护模式十:中断和异常区别
上幾篇文章學(xué)習(xí)了分頁(yè)機(jī)制的一些原理:
- 【OS學(xué)習(xí)筆記】三十 保護(hù)模式九:段頁(yè)式內(nèi)存管理機(jī)制概述
- 【OS學(xué)習(xí)筆記】三十一 保護(hù)模式九:頁(yè)目錄、頁(yè)表和頁(yè)三者的關(guān)系詳解
今天繼續(xù)學(xué)習(xí)保護(hù)模式下的關(guān)于中斷與異常的概念。本文主要學(xué)習(xí)中斷與異常的區(qū)別。
在以下文章中我也寫過(guò)關(guān)于中斷的文章,可以參考學(xué)習(xí):
- 【軟件開發(fā)底層知識(shí)修煉】二 深入淺出處理器之二 中斷的概念與意義
- 【OS學(xué)習(xí)筆記】十一 實(shí)模式:中斷-軟中斷和硬中斷基本原理
1、中斷和異常
中斷和異常的作用是指示系統(tǒng)中的某個(gè)地方發(fā)生了一些事件,需要引起處理器以及正在執(zhí)行的程序的注意。當(dāng)中斷和異常發(fā)生時(shí),典型的結(jié)果是迫使處理器將控制從當(dāng)前正在執(zhí)行的程序或者任務(wù)轉(zhuǎn)移到另一個(gè)例程或者任務(wù)中去。該例程叫做中斷處理程序,或者叫做異常處理程序。如果是一個(gè)任務(wù),則發(fā)生任務(wù)切換。
1.1 中斷
中斷包括硬件中斷和軟中斷。
硬件中斷是由外圍設(shè)備發(fā)出中斷信號(hào)引起的,以請(qǐng)求處理器提供服務(wù)。硬件中斷完全是隨機(jī)的,與處理器的執(zhí)行并不同步。當(dāng)中斷發(fā)生時(shí),處理器要先執(zhí)行完當(dāng)前的指令,然后才對(duì)中斷進(jìn)行處理。
1.2 異常
異常就是內(nèi)部中斷。它們是處理器內(nèi)部產(chǎn)生的中斷,表示在指令執(zhí)行的過(guò)程中遇到了錯(cuò)誤的狀態(tài)。
當(dāng)處理器執(zhí)行一條非法指令(如除零指令),或者因?yàn)闂l件不具備,指令不能正常執(zhí)行時(shí),將引發(fā)這種類型的中斷。
異常分為三種:
- 程序錯(cuò)誤異常:處理器再執(zhí)行指令時(shí),檢測(cè)到程序的錯(cuò)誤,并由此而引發(fā)的異常
- 軟件引發(fā)的異常:這類通常是由into、int3和bound指令主動(dòng)發(fā)起的。比如中斷的單步調(diào)試,就是利用int3指令進(jìn)行的。
- 機(jī)器檢查異常:這種是與處理器型號(hào)相關(guān)的一些問(wèn)題。我們不關(guān)心這種問(wèn)題
根據(jù)異常情況的性質(zhì)和嚴(yán)重性,異常又可以分為以下三種:
- 故障:故障通常是可以糾正的。比如,缺頁(yè),這實(shí)際上是一種故障,只需要處理器將磁盤上對(duì)應(yīng)的頁(yè)拷貝到相應(yīng)的頁(yè)面即可。故障一般是由好處的
- 陷阱:陷阱通常用于調(diào)試目的。比如單步調(diào)試一般使用int3指令,這其實(shí)是一種陷阱。
- 終止:終止意味著嚴(yán)重的錯(cuò)誤,比如硬件錯(cuò)誤,系統(tǒng)表(GDT,LDT等)中的數(shù)據(jù)不一致或者無(wú)效。一個(gè)比較典型的終止類異常是“雙重故障”,一般無(wú)法修復(fù)。
中斷和異常發(fā)生時(shí),處理器將掛起當(dāng)前正在執(zhí)行的過(guò)程或者任務(wù),然后執(zhí)行中斷異常處理過(guò)程。返回時(shí),處理器恢復(fù)程序或者任務(wù)的執(zhí)行,而且被打斷的程序或者任務(wù)的執(zhí)行不失連續(xù)性,除非遇到一個(gè)終止類的異常。
對(duì)于某些異常,處理器會(huì)在轉(zhuǎn)入異常處理程序之前,會(huì)在當(dāng)前棧中壓入一個(gè)稱為錯(cuò)誤碼的數(shù)值,幫助程序進(jìn)一步診斷異常產(chǎn)生的位置和原因。
下表列出了保戶模式下的中斷和異常向量分配:
2 總結(jié)
本文主要學(xué)習(xí)保護(hù)模式下的關(guān)于中斷與異常的概念。
詳細(xì)的內(nèi)容還是要參考原書籍,這里只是做一個(gè)簡(jiǎn)單的總結(jié)。
學(xué)習(xí)探討加個(gè)人:
qq:1126137994
微信:liu1126137994
總結(jié)
以上是生活随笔為你收集整理的【OS学习笔记】三十四 保护模式十:中断和异常区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: biosrecovery什么意思_BIO
- 下一篇: opencv 最大连通域_opencv