版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
操作系統(tǒng)硬件機(jī)制處理器狀態(tài)、特權(quán)指令、非特權(quán)指令;中斷概念、中斷系統(tǒng)、中斷向量表、中斷響應(yīng)處理過程;系統(tǒng)調(diào)用、處理過程、分類2操作系統(tǒng)的硬件環(huán)境任何系統(tǒng)軟件都是對硬件功能的延伸,都是建立在硬件基礎(chǔ)上的,離不開硬件設(shè)施的支持。而操作系統(tǒng)更是直接依賴于硬件,與硬件的關(guān)系尤為密切。3計算機(jī)系統(tǒng)的體系結(jié)構(gòu)(本圖摘自Silberschatz,GalvinandGagne:“OperatingSystemConcepts”)4
受保護(hù)的指令;系統(tǒng)調(diào)用;內(nèi)存保護(hù);中斷機(jī)制;
I/O系統(tǒng);時鐘操作。OS需要的硬件特性5有些指令只有操作系統(tǒng)才有權(quán)使用,例如:訪問某些硬件資源的指令,這些硬件資源
禁止用戶程序直接訪問;對I/O設(shè)備的直接訪問指令,如磁盤、打印
機(jī)等;對內(nèi)存管理狀態(tài)進(jìn)行操作的指令(頁表指
針、刷新TLB等);某些特殊的狀態(tài)位的設(shè)置指令;
停機(jī)指令。一、受保護(hù)的指令(特權(quán)指令)6如何從硬件上實現(xiàn)OS的這個要求?處理器的狀態(tài)
根據(jù)運(yùn)行程序?qū)Y源和機(jī)器指令的使用權(quán)限,
把處理器設(shè)置為不同狀態(tài)。多數(shù)系統(tǒng)將處理器工作狀態(tài)劃分為管態(tài)和目態(tài)。管態(tài):操作系統(tǒng)的管理程序運(yùn)行時的狀態(tài),較高的
特權(quán)級別,又稱為特權(quán)態(tài)、系統(tǒng)態(tài)、內(nèi)核態(tài)處理器處于管態(tài)時:可以執(zhí)行所有的指令(包括特權(quán)
指令)、使用所有的資源,并具有改變處理器狀態(tài)的
能力。Supervisormode==“Superuser”privilege?7目態(tài):用戶程序運(yùn)行時的狀態(tài),較低的特權(quán)級別,
又稱為普通態(tài)(普態(tài))、用戶態(tài)。在此狀態(tài)下禁止使用特權(quán)指令,不能直接使用系統(tǒng)
資源與改變CPU狀態(tài),并且只能訪問用戶程序所在
的存儲空間。有些系統(tǒng)將處理器狀態(tài)劃分核心狀態(tài),管理狀態(tài)和
用戶程序狀態(tài)(目標(biāo)狀態(tài))三種。8實例:x86系列處理器(1)386、486、Pentium系列都支持4個處理器特權(quán)級別(特權(quán)環(huán):R0、R1、R2和R3)從R0到R3特權(quán)能力依次降低R0相當(dāng)于雙狀態(tài)系統(tǒng)的管態(tài)R3相當(dāng)于目態(tài)R1和R2則介于兩者之間,它們能夠運(yùn)行的指令集合具有包含關(guān)系:9各個級別有保護(hù)性檢查(地址校驗、I/O限制)特權(quán)級別之間的轉(zhuǎn)換方式不盡相同四個級別運(yùn)行不同類別的程序:R0-運(yùn)行操作系統(tǒng)核心代碼R1-運(yùn)行關(guān)鍵設(shè)備驅(qū)動程序和I/O處理例程R2-運(yùn)行其它受保護(hù)共享代碼,如語言系統(tǒng)運(yùn)行環(huán)境R3-運(yùn)行各種用戶程序現(xiàn)有基于x86處理器的操作系統(tǒng),多數(shù)UNIX、Linux以及Windows系列大都只用了R0和R3兩個特權(quán)級別實例:x86系列處理器(2)10問題一:CPU怎么來判斷當(dāng)前運(yùn)行的程序是
系統(tǒng)程序還是用戶程序呢?程序狀態(tài)字PSW一個專門的寄存器,用來指示處理器的狀態(tài),PSW
(ProgramStatusWord),通常包括:
CPU的工作狀態(tài)碼——指明管態(tài)還是目態(tài),用來
說明當(dāng)前在CPU上執(zhí)行的是操作系統(tǒng)還是一般用
戶,從而決定其是否可以使用特權(quán)指令或擁有其
它的特殊權(quán)力;條件碼——反映指令執(zhí)行后的結(jié)果特征;中斷屏蔽碼——指出是否允許中斷11問題二:狀態(tài)之間如何轉(zhuǎn)換?用戶程序無法直接修改程序狀態(tài)字;那么用戶程序如何才能去做一些帶有“特權(quán)”的
事情(如I/O)呢?解決之道是————管態(tài)→目態(tài)通過設(shè)置PSW(修改程序狀態(tài)字)來實現(xiàn);目態(tài)→管態(tài)12二、系統(tǒng)調(diào)用用戶程序通過特殊的訪管指令,來請求操作系統(tǒng)
為其提供某種功能的服務(wù)。系統(tǒng)調(diào)用指令的實現(xiàn)
過程一般是:當(dāng)CPU執(zhí)行訪管指令時,即引起訪管中斷;處理器保存中斷點的程序執(zhí)行上下文環(huán)境(PSW,
PC和其他的一些寄存器),CPU切換到管態(tài)。中斷處理程序開始工作,調(diào)用相應(yīng)的系統(tǒng)服務(wù);中斷處理結(jié)束后,恢復(fù)被中斷程序的上下文環(huán)境,
CPU恢復(fù)為目態(tài),回到中斷點繼續(xù)執(zhí)行。13管態(tài)(系統(tǒng)態(tài))目態(tài)(用戶態(tài))系統(tǒng)調(diào)用(匯編指令)中斷處理程序系統(tǒng)服務(wù)程序用戶程序OS內(nèi)核陷入到
管態(tài)恢復(fù)到
目態(tài)14intsys_fork();創(chuàng)建進(jìn)程intsys_read();讀文件intsys_write();寫文件intsys_open();打開文件intsys_execve();執(zhí)行程序intsys_time();取當(dāng)前時間intsys_chdir();更改當(dāng)前目錄intsys_mount();安裝文件系統(tǒng)……Linux0.11版本中的系統(tǒng)調(diào)用(72個)數(shù)組sys_call_table[]記錄了每個系統(tǒng)調(diào)用函數(shù)的入口地址,系統(tǒng)調(diào)用中斷int0x80,eax中是調(diào)用號。15
受保護(hù)的指令;系統(tǒng)調(diào)用;內(nèi)存保護(hù);中斷機(jī)制;
I/O系統(tǒng);時鐘操作。OS需要的硬件特性16Why內(nèi)存保護(hù)?
Youcan’thurtme,Ican’thurtyou
防止一個用戶程序去訪問其他用戶
程序的數(shù)據(jù);保護(hù)操作系統(tǒng)免受用戶程序的破壞。三、內(nèi)存保護(hù)17在硬件上如何支持?最簡單的做法:基址寄存器和邊界寄存器程序C程序A程序B內(nèi)存基址寄存器邊界寄存器在開始運(yùn)行一
個程序時,由
操作系統(tǒng)負(fù)責(zé)
給基址寄存器
和邊界寄存器
設(shè)置相應(yīng)的值虛擬存儲技術(shù):把內(nèi)存和外存結(jié)合起來使用,硬件
提供虛、實地址映射的機(jī)制。18中斷對于操作系統(tǒng)的重要性就像機(jī)器中的驅(qū)動齒輪一樣
有人把操作系統(tǒng)稱為是由“中斷驅(qū)動”或者“(中斷)事件驅(qū)動”四、中斷機(jī)制19什么是中斷(interrupt)?指的是由于某個事件的發(fā)生,改變了正在CPU上
執(zhí)行的指令的順序;這種事件對應(yīng)于CPU芯片內(nèi)部或外部的硬件電路
所生成的電信號。中斷處理的過程:當(dāng)中斷事件發(fā)生時,CPU暫停正在執(zhí)行的程序,
保留現(xiàn)場后自動轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序,
待處理完成后返回斷點,繼續(xù)執(zhí)行被打斷的程序。20中斷的類型按照Intel公司的文檔,中斷可以分為兩大類,即同步中斷和異步中斷。同步中斷:指當(dāng)CPU正在執(zhí)行指令的時候,由CPU的控制單元所發(fā)出的中斷,也稱為“異常”;CPU檢測到的異常,包括:錯誤Fault、
陷阱Trap和中止Abort,例如:算術(shù)溢出、被零除、用戶態(tài)下使用了特權(quán)指令等;程序設(shè)定的異常,即程序員通過int、int3等指令來發(fā)出的中斷請求,也稱為軟中斷,主要用來實現(xiàn)系統(tǒng)調(diào)用服務(wù)。21異步中斷:指由其他的硬件設(shè)備在任意的時刻所發(fā)出的中斷,簡稱為“中斷”;可屏蔽中斷,即I/O中斷,它是當(dāng)外部設(shè)備或通道操作正常結(jié)束或發(fā)生錯誤時所發(fā)生的中斷。例如:打印機(jī)打印完成、缺紙,讀磁盤時驅(qū)動器中沒有磁盤等;不可屏蔽中斷,例如:由掉電、存儲器校驗錯等硬件故障引起的硬件中斷;每一個中斷或異常都用一個0-255之間的整數(shù)來標(biāo)識,稱為中斷向量,系統(tǒng)根據(jù)中斷向量,來為每一個中斷或異常指定相應(yīng)的處理程序。中斷嵌套在處理一個中斷事件時,系統(tǒng)又響應(yīng)了新的中斷事件。程序執(zhí)行中斷中斷處理再次中斷嵌套中斷處理返回返回中斷的作用CPU與I/O設(shè)備并行工作:設(shè)備傳輸結(jié)束發(fā)中斷硬件故障處理:出現(xiàn)故障發(fā)中斷實現(xiàn)人機(jī)聯(lián)系:干預(yù)機(jī)器運(yùn)行,了解機(jī)器狀態(tài),下達(dá)臨時命令實現(xiàn)多道程序和分時系統(tǒng):切換實現(xiàn)實時處理:以中斷方式傳送實時信號實現(xiàn)應(yīng)用程序與OS聯(lián)系:如軟中斷多處理機(jī)間的聯(lián)系:以中斷方式實現(xiàn)多處理機(jī)間的信息交流和任務(wù)切換中斷優(yōu)先級中斷優(yōu)先級是中斷響應(yīng)的優(yōu)先級別。當(dāng)多個中斷發(fā)生時,系統(tǒng)根據(jù)優(yōu)先級決定響應(yīng)中斷的次序,優(yōu)先響應(yīng)高優(yōu)先級的中斷,同級中斷則按硬件規(guī)定的次序響應(yīng)。中斷優(yōu)先級由高到低的順序為:硬件故障中斷、訪管中斷、程序性中斷、外部中斷、輸入/輸出中斷。中斷屏蔽中斷屏蔽表示暫時封鎖對中斷的響應(yīng),待屏蔽消除后再響應(yīng)。讓屏蔽字與一些中斷事件對應(yīng),當(dāng)某中斷屏蔽時,其屏蔽標(biāo)志置位,表示封鎖對相應(yīng)事件的響應(yīng);當(dāng)中斷產(chǎn)生時,若沒有屏蔽則響應(yīng)中斷,若屏蔽則暫時不響應(yīng)該中斷,待屏蔽標(biāo)志消除后再響應(yīng)。注意:自愿性中斷不能屏蔽。中斷響應(yīng)中斷響應(yīng):當(dāng)處理機(jī)發(fā)現(xiàn)中斷請求時,終止現(xiàn)行程序的運(yùn)行,并自動引出中斷處理程序的過程。其響應(yīng)流程如下圖所示。中斷響應(yīng)流程圖執(zhí)行一條指令指令結(jié)束?Y有中斷請求?開中斷?YY響應(yīng)中斷取下條指令NN中斷響應(yīng)過程中斷響應(yīng)過程一般包含以下幾步:發(fā)現(xiàn)中斷源保護(hù)現(xiàn)場引出中斷處理程序發(fā)現(xiàn)中斷源發(fā)現(xiàn)中斷源:通過掃描中斷寄存器檢查有無中斷請求。中斷裝置:發(fā)現(xiàn)中斷源而產(chǎn)生中斷過程的設(shè)備稱為中斷裝置。中斷由軟硬件協(xié)同完成,軟硬件部分合稱中斷系統(tǒng)。中斷系統(tǒng)的職能是實現(xiàn)中斷進(jìn)入。斷點及恢復(fù)點:發(fā)現(xiàn)中斷時剛執(zhí)行完的那條指令所在的單元號稱為斷點,斷點的邏輯后繼指令的單元號稱為恢復(fù)點。保護(hù)現(xiàn)場保護(hù)現(xiàn)場:當(dāng)中斷發(fā)生時,將現(xiàn)場信息保存到內(nèi)存中?,F(xiàn)場:指中斷那一刻能確保程序繼續(xù)運(yùn)行的信息,主要包括:后繼指令單元號、程序運(yùn)行時CPU狀態(tài)、指令執(zhí)行情況、程序執(zhí)行中間結(jié)果?;謴?fù)現(xiàn)場:被中斷程序恢復(fù)運(yùn)行之前,將保存的現(xiàn)場信息恢復(fù)到內(nèi)存中。引出中斷處理程序引出中斷處理程序:中斷發(fā)生時,中斷系統(tǒng)將程序狀態(tài)字的內(nèi)容保存到主存約定單元中,再將中斷處理程序的程序狀態(tài)字送入相應(yīng)的寄存器,于是引出了中斷處理程序。中斷響應(yīng)的本質(zhì)是交換程序狀態(tài)字的內(nèi)容以保留程序斷點信息、自動轉(zhuǎn)入相應(yīng)的中斷處理程序。中斷處理過程中斷處理功能由硬件和軟件配合完成。硬件負(fù)責(zé)中斷的發(fā)現(xiàn)及進(jìn)入,軟件負(fù)責(zé)中斷的分析處理及恢復(fù)工作。軟件中斷處理過程主要有三項工作:保護(hù)被中斷程序的現(xiàn)場并傳遞參數(shù)執(zhí)行相應(yīng)的中斷服務(wù)程序恢復(fù)被中斷程序的現(xiàn)場并退出中斷中斷處理例程簡介1硬件故障中斷的處理:這類故障一般需要人工干預(yù),OS所做工作是:保護(hù)現(xiàn)場、防止事故蔓延、向操作員報告并提供故障信息。程序性中斷的處理:大體有以下處理方法對純程序性錯誤,如地址越界,OS將出錯程序名、出錯地址、錯誤性質(zhì)報告給操作員對其他程序性錯,如溢出,可交給用戶自行處理,若用戶沒有提出處理辦法,則OS將出錯程序名、出錯地址、錯誤性質(zhì)報告給操作員。中斷處理例程簡介2外部中斷的處理:對不同中斷分別進(jìn)行處理。如時鐘中斷完成增加時鐘計數(shù)。外部設(shè)備中斷的處理:分為以下情況傳輸結(jié)束:決定傳輸是否結(jié)束。若未結(jié)束則啟動下一次傳輸,否則置設(shè)備狀態(tài)為空閑。傳輸錯誤:置設(shè)備空閑,報告?zhèn)鬏斿e誤。故障:置設(shè)備空閑,報告設(shè)備錯誤。訪管中斷的處理:根據(jù)系統(tǒng)調(diào)用號查得系統(tǒng)調(diào)用程序的入口地址,并轉(zhuǎn)入執(zhí)行。2.4向量中斷向量中斷:中斷發(fā)生時由中斷源引導(dǎo)CPU進(jìn)入中斷處理程序。中斷向量:由中斷處理程序入口地址及
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Windows Server 2022活動目錄管理實踐( 第2版 微課版)-課件項目11 管理將計算機(jī)加入域的權(quán)限
- 2023-2024學(xué)年湖北省隨州市廣水市余店中學(xué)八年級(上)月考數(shù)學(xué)試卷(10月份)
- 魯教版八年級數(shù)學(xué)上冊第一章因式分解3第三課時綜合應(yīng)用各種方法分解因式課件
- 【核心素養(yǎng)】部編版小學(xué)語文一年級上冊語文園地二主題閱讀(含答案)
- 四川省宜賓市興文縣共樂初級中學(xué)校2024-2025學(xué)年上學(xué)期七年級10月考試數(shù)學(xué)試題(無答案)
- 八年級生物期中模擬卷(全解全析)(江西專用)
- 貓教學(xué)設(shè)計課件
- 湘教版科學(xué)三年級上冊全冊教案
- 地理節(jié)地形和地勢新
- 大班撲克王教案課件
- 新質(zhì)生產(chǎn)力-講解課件
- 樓梯水泥砂漿抹面施工方法
- 《做時間的主人》主題班會
- LTE室分系統(tǒng)基礎(chǔ)知識
- 英文報價單模板(共11頁)
- 陜西省高考體育評分標(biāo)準(zhǔn)
- 《紅星照耀中國》閱讀任務(wù)單打印
- 光伏發(fā)電站電壓與頻率響應(yīng)檢測規(guī)程 - 中國電力企業(yè)聯(lián)合會
- 邊坡自動化監(jiān)測方案-水流速
- 不間斷電源UPS技術(shù)規(guī)格書
- NB∕T 32004-2018 光伏并網(wǎng)逆變器技術(shù)規(guī)范
評論
0/150
提交評論