操作系統(tǒng):中斷

控制和狀態(tài)寄存器:用于控制處理器的操作,通常由操作系統(tǒng)代碼使用氛改,在某種特權(quán)級別下可以訪問目尖、修改

常見的控制和狀態(tài)寄存器:程序計數(shù)器(program counter),記錄將要取出的指令的地址寺晌;指令寄存器(Instruction Register),記錄最近取出的指令澡刹;程序狀態(tài)字(Program Status Word)記錄處理器的運行狀態(tài)如條件碼折剃、模式、控制位等信息像屋。

操作系統(tǒng)的需求——保護(hù):實現(xiàn)保護(hù)與控制;需要硬件提供基本運行機(jī)制:處理器具有特權(quán)級別边篮,能在不同的特權(quán)級運行的不同指令集合己莺;硬件機(jī)制可將OS與用戶程序隔離。

特權(quán)指令和非特權(quán)指令:

操作系統(tǒng)需要兩種CPU狀態(tài):1.內(nèi)核態(tài):運行操作系統(tǒng)程序戈轿;2.用戶態(tài):運行用戶程序凌受;

特權(quán)指令:只能由操作系統(tǒng)使用、用戶程序不能使用的指令思杯。

非特權(quán)指令:用戶程序可以使用的指令胜蛉。

操作系統(tǒng)可以執(zhí)行特權(quán)指令和非特權(quán)指令

特權(quán)指令:啟動I/O 內(nèi)存清零 修改程序狀態(tài)字 設(shè)置時鐘 允許/禁止中斷 停機(jī)

非特權(quán)指令:控制轉(zhuǎn)移 算數(shù)運算 防管指令 取數(shù)指令

X86處理器支持4個處理器特權(quán)級別

特權(quán)環(huán):R0,R1,R2,R3

從R0到R3,特權(quán)能力由高到低色乾,R0相當(dāng)于內(nèi)核態(tài)誊册;R3相當(dāng)于用戶態(tài);R1和R2則介于兩者之間

CPU狀態(tài)之間的轉(zhuǎn)換:

用戶態(tài)->內(nèi)核態(tài) 唯一途徑是中斷/異常/陷入機(jī)制

內(nèi)核態(tài)->用戶態(tài) 設(shè)置程序狀態(tài)字PSW

中斷/異常的概念:

CPU對系統(tǒng)發(fā)生的某個事件做出的一種反應(yīng)

CPU暫停正在執(zhí)行的程序暖璧,保留現(xiàn)場后自動轉(zhuǎn)區(qū)執(zhí)行相應(yīng)事件的處理程序案怯,處理完成后返回斷點,繼續(xù)執(zhí)行被打斷的程序澎办。

事件的發(fā)生改變了處理器的控制流嘲碱,特點是隨即發(fā)生的,自動處理的局蚀,可恢復(fù)的

為什么引入中斷與異常麦锯?

中斷的引入:為了支持CPU和設(shè)備之間的并行操作,當(dāng)CPU啟動設(shè)備進(jìn)行輸入/輸出后琅绅,設(shè)備便可獨立工作扶欣,CPU轉(zhuǎn)去處理與此次輸入/輸出不相關(guān)的事情;當(dāng)設(shè)備完成輸入/輸出后,通過向CPU發(fā)中斷報告此次輸入/輸出的結(jié)果宵蛀,讓CPU決定如何處理以后的事情昆著。

異常的引入:表示CPU執(zhí)行指令時本身出現(xiàn)的問題。如算數(shù)溢出术陶、除零凑懂、取數(shù)時的奇偶錯,訪內(nèi)存地址時越界或執(zhí)行了陷入指令等梧宫,這時硬件改變了CPU當(dāng)前的執(zhí)行流程接谨,轉(zhuǎn)到相應(yīng)的錯誤處理程序或異常處理程序或執(zhí)行系統(tǒng)調(diào)用。

事件包括中斷(外中斷)和異常(內(nèi)中斷)

中斷:外部事件塘匣,正在運行的程序所不期望的脓豪。I/O中斷(鍵盤上按Ctrl+C,網(wǎng)卡接收數(shù)據(jù)包忌卤,打印機(jī)結(jié)束扫夜,讀盤結(jié)束),時鐘中斷(設(shè)定定時器到點驰徊,CPU運行時間片到了)笤闯,硬件故障(筆記本電池低電量,內(nèi)存奇偶校驗錯)

異常:由正在執(zhí)行指令引發(fā)棍厂。系統(tǒng)調(diào)用颗味,頁故障/頁錯誤,保護(hù)性異常(只讀內(nèi)容寫操作牺弹,地址訪問越界)浦马,斷點指令(單步調(diào)試),其他程序性異常(算數(shù)溢出)

中斷/異常機(jī)制工作原理:

中斷/異常機(jī)制是現(xiàn)代計算機(jī)系統(tǒng)的核心機(jī)制之一张漂,硬件和軟件相互配合而使計算機(jī)系統(tǒng)得以充分發(fā)揮能力

硬件該做:捕獲中斷源發(fā)出的中斷/異常請求晶默,以一定方式相應(yīng),將處理器控制權(quán)交給特定的處理程序(中斷/異常的相應(yīng))

軟件要做:識別中斷/異常類型并完成相應(yīng)的處理(中斷/異常處理程序)

中斷響應(yīng)過程:在每條指令執(zhí)行周期的最后時刻掃描中斷寄存器航攒,查看是否有中斷信號荤胁。若有中斷,中斷硬件將該中斷觸發(fā)器內(nèi)容按規(guī)定編碼送入PSW的相應(yīng)位屎债,稱為中斷碼仅政,通過查中斷向量表引出中斷處理程序。

中斷向量表由中斷向量構(gòu)成盆驹。

中斷向量:一個內(nèi)存單元圆丹,存放中斷處理程序入口地址和程序運行時所需的處理機(jī)狀態(tài)字。

執(zhí)行流程按中斷號/異常類型的不同躯喇,通過中斷向量表轉(zhuǎn)移控制權(quán)給中高端處理程序辫封。

中斷響應(yīng)示意圖:1.設(shè)備發(fā)中斷信號 2.硬件保存現(xiàn)場 3.根據(jù)中斷碼查表 4.把中斷處理程序入口地址等推送到相應(yīng)寄存器 5.執(zhí)行中斷處理程序

中斷處理程序

設(shè)計操作系統(tǒng)時硝枉,為每一類中斷/異常事件編好相應(yīng)的處理程序,并設(shè)置好中斷向量表倦微。

系統(tǒng)運行時若響應(yīng)中斷妻味,中斷硬件部件將CPU控制權(quán)轉(zhuǎn)給中斷處理程序:保存相關(guān)寄存器信息;分析中斷/異常的具體原因欣福;執(zhí)行對應(yīng)的處理功能责球;恢復(fù)現(xiàn)場,返回被事件打斷的程序拓劝;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雏逾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子郑临,更是在濱河造成了極大的恐慌栖博,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厢洞,死亡現(xiàn)場離奇詭異仇让,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)躺翻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門妹孙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人获枝,你說我怎么就攤上這事『П剩” “怎么了省店?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長笨触。 經(jīng)常有香客問我懦傍,道長,這世上最難降的妖魔是什么芦劣? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任粗俱,我火速辦了婚禮,結(jié)果婚禮上虚吟,老公的妹妹穿的比我還像新娘寸认。我一直安慰自己,他們只是感情好串慰,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布偏塞。 她就那樣靜靜地躺著,像睡著了一般邦鲫。 火紅的嫁衣襯著肌膚如雪灸叼。 梳的紋絲不亂的頭發(fā)上神汹,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機(jī)與錄音古今,去河邊找鬼屁魏。 笑死,一個胖子當(dāng)著我的面吹牛捉腥,可吹牛的內(nèi)容都是我干的氓拼。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼但狭,長吁一口氣:“原來是場噩夢啊……” “哼披诗!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起立磁,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤呈队,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唱歧,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宪摧,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年颅崩,在試婚紗的時候發(fā)現(xiàn)自己被綠了几于。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡沿后,死狀恐怖沿彭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情尖滚,我是刑警寧澤喉刘,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站漆弄,受9級特大地震影響睦裳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撼唾,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一廉邑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧倒谷,春花似錦蛛蒙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至猴伶,卻和暖如春课舍,著一層夾襖步出監(jiān)牢的瞬間塌西,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工筝尾, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留捡需,地道東北人。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓筹淫,卻偏偏與公主長得像站辉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子损姜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容