操作系統(tǒng)硬件機(jī)制_第1頁(yè)
操作系統(tǒng)硬件機(jī)制_第2頁(yè)
操作系統(tǒng)硬件機(jī)制_第3頁(yè)
操作系統(tǒng)硬件機(jī)制_第4頁(yè)
操作系統(tǒng)硬件機(jī)制_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

操作系統(tǒng)硬件機(jī)制處理器狀態(tài)、特權(quán)指令、非特權(quán)指令;中斷概念、中斷系統(tǒng)、中斷向量表、中斷響應(yīng)處理過(guò)程;系統(tǒng)調(diào)用、處理過(guò)程、分類(lèi)2操作系統(tǒng)的硬件環(huán)境任何系統(tǒng)軟件都是對(duì)硬件功能的延伸,都是建立在硬件基礎(chǔ)上的,離不開(kāi)硬件設(shè)施的支持。而操作系統(tǒng)更是直接依賴(lài)于硬件,與硬件的關(guān)系尤為密切。3計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)(本圖摘自Silberschatz,GalvinandGagne:“OperatingSystemConcepts”)4

受保護(hù)的指令;系統(tǒng)調(diào)用;內(nèi)存保護(hù);中斷機(jī)制;

I/O系統(tǒng);時(shí)鐘操作。OS需要的硬件特性5有些指令只有操作系統(tǒng)才有權(quán)使用,例如:訪(fǎng)問(wèn)某些硬件資源的指令,這些硬件資源

禁止用戶(hù)程序直接訪(fǎng)問(wèn);對(duì)I/O設(shè)備的直接訪(fǎng)問(wèn)指令,如磁盤(pán)、打印

機(jī)等;對(duì)內(nèi)存管理狀態(tài)進(jìn)行操作的指令(頁(yè)表指

針、刷新TLB等);某些特殊的狀態(tài)位的設(shè)置指令;

停機(jī)指令。一、受保護(hù)的指令(特權(quán)指令)6如何從硬件上實(shí)現(xiàn)OS的這個(gè)要求?處理器的狀態(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)行時(shí)的狀態(tài),較高的

特權(quán)級(jí)別,又稱(chēng)為特權(quán)態(tài)、系統(tǒng)態(tài)、內(nèi)核態(tài)處理器處于管態(tài)時(shí):可以執(zhí)行所有的指令(包括特權(quán)

指令)、使用所有的資源,并具有改變處理器狀態(tài)的

能力。Supervisormode==“Superuser”privilege?7目態(tài):用戶(hù)程序運(yùn)行時(shí)的狀態(tài),較低的特權(quán)級(jí)別,

又稱(chēng)為普通態(tài)(普態(tài))、用戶(hù)態(tài)。在此狀態(tài)下禁止使用特權(quán)指令,不能直接使用系統(tǒng)

資源與改變CPU狀態(tài),并且只能訪(fǎng)問(wèn)用戶(hù)程序所在

的存儲(chǔ)空間。有些系統(tǒng)將處理器狀態(tài)劃分核心狀態(tài),管理狀態(tài)和

用戶(hù)程序狀態(tài)(目標(biāo)狀態(tài))三種。8實(shí)例:x86系列處理器(1)386、486、Pentium系列都支持4個(gè)處理器特權(quán)級(jí)別(特權(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各個(gè)級(jí)別有保護(hù)性檢查(地址校驗(yàn)、I/O限制)特權(quán)級(jí)別之間的轉(zhuǎn)換方式不盡相同四個(gè)級(jí)別運(yùn)行不同類(lèi)別的程序:R0-運(yùn)行操作系統(tǒng)核心代碼R1-運(yùn)行關(guān)鍵設(shè)備驅(qū)動(dòng)程序和I/O處理例程R2-運(yùn)行其它受保護(hù)共享代碼,如語(yǔ)言系統(tǒng)運(yùn)行環(huán)境R3-運(yùn)行各種用戶(hù)程序現(xiàn)有基于x86處理器的操作系統(tǒng),多數(shù)UNIX、Linux以及Windows系列大都只用了R0和R3兩個(gè)特權(quán)級(jí)別實(shí)例:x86系列處理器(2)10問(wèn)題一:CPU怎么來(lái)判斷當(dāng)前運(yùn)行的程序是

系統(tǒng)程序還是用戶(hù)程序呢?程序狀態(tài)字PSW一個(gè)專(zhuān)門(mén)的寄存器,用來(lái)指示處理器的狀態(tài),PSW

(ProgramStatusWord),通常包括:

CPU的工作狀態(tài)碼——指明管態(tài)還是目態(tài),用來(lái)

說(shuō)明當(dāng)前在CPU上執(zhí)行的是操作系統(tǒng)還是一般用

戶(hù),從而決定其是否可以使用特權(quán)指令或擁有其

它的特殊權(quán)力;條件碼——反映指令執(zhí)行后的結(jié)果特征;中斷屏蔽碼——指出是否允許中斷11問(wèn)題二:狀態(tài)之間如何轉(zhuǎn)換?用戶(hù)程序無(wú)法直接修改程序狀態(tài)字;那么用戶(hù)程序如何才能去做一些帶有“特權(quán)”的

事情(如I/O)呢?解決之道是————管態(tài)→目態(tài)通過(guò)設(shè)置PSW(修改程序狀態(tài)字)來(lái)實(shí)現(xiàn);目態(tài)→管態(tài)12二、系統(tǒng)調(diào)用用戶(hù)程序通過(guò)特殊的訪(fǎng)管指令,來(lái)請(qǐng)求操作系統(tǒng)

為其提供某種功能的服務(wù)。系統(tǒng)調(diào)用指令的實(shí)現(xiàn)

過(guò)程一般是:當(dāng)CPU執(zhí)行訪(fǎng)管指令時(shí),即引起訪(fǎng)管中斷;處理器保存中斷點(diǎn)的程序執(zhí)行上下文環(huán)境(PSW,

PC和其他的一些寄存器),CPU切換到管態(tài)。中斷處理程序開(kāi)始工作,調(diào)用相應(yīng)的系統(tǒng)服務(wù);中斷處理結(jié)束后,恢復(fù)被中斷程序的上下文環(huán)境,

CPU恢復(fù)為目態(tài),回到中斷點(diǎn)繼續(xù)執(zhí)行。13管態(tài)(系統(tǒng)態(tài))目態(tài)(用戶(hù)態(tài))系統(tǒng)調(diào)用(匯編指令)中斷處理程序系統(tǒng)服務(wù)程序用戶(hù)程序OS內(nèi)核陷入到

管態(tài)恢復(fù)到

目態(tài)14intsys_fork();創(chuàng)建進(jìn)程intsys_read();讀文件intsys_write();寫(xiě)文件intsys_open();打開(kāi)文件intsys_execve();執(zhí)行程序intsys_time();取當(dāng)前時(shí)間intsys_chdir();更改當(dāng)前目錄intsys_mount();安裝文件系統(tǒng)……Linux0.11版本中的系統(tǒng)調(diào)用(72個(gè))數(shù)組sys_call_table[]記錄了每個(gè)系統(tǒng)調(diào)用函數(shù)的入口地址,系統(tǒng)調(diào)用中斷int0x80,eax中是調(diào)用號(hào)。15

受保護(hù)的指令;系統(tǒng)調(diào)用;內(nèi)存保護(hù);中斷機(jī)制;

I/O系統(tǒng);時(shí)鐘操作。OS需要的硬件特性16Why內(nèi)存保護(hù)?

Youcan’thurtme,Ican’thurtyou

防止一個(gè)用戶(hù)程序去訪(fǎng)問(wèn)其他用戶(hù)

程序的數(shù)據(jù);保護(hù)操作系統(tǒng)免受用戶(hù)程序的破壞。三、內(nèi)存保護(hù)17在硬件上如何支持?最簡(jiǎn)單的做法:基址寄存器和邊界寄存器程序C程序A程序B內(nèi)存基址寄存器邊界寄存器在開(kāi)始運(yùn)行一

個(gè)程序時(shí),由

操作系統(tǒng)負(fù)責(zé)

給基址寄存器

和邊界寄存器

設(shè)置相應(yīng)的值虛擬存儲(chǔ)技術(shù):把內(nèi)存和外存結(jié)合起來(lái)使用,硬件

提供虛、實(shí)地址映射的機(jī)制。18中斷對(duì)于操作系統(tǒng)的重要性就像機(jī)器中的驅(qū)動(dòng)齒輪一樣

有人把操作系統(tǒng)稱(chēng)為是由“中斷驅(qū)動(dòng)”或者“(中斷)事件驅(qū)動(dòng)”四、中斷機(jī)制19什么是中斷(interrupt)?指的是由于某個(gè)事件的發(fā)生,改變了正在CPU上

執(zhí)行的指令的順序;這種事件對(duì)應(yīng)于CPU芯片內(nèi)部或外部的硬件電路

所生成的電信號(hào)。中斷處理的過(guò)程:當(dāng)中斷事件發(fā)生時(shí),CPU暫停正在執(zhí)行的程序,

保留現(xiàn)場(chǎng)后自動(dòng)轉(zhuǎn)去執(zhí)行相應(yīng)事件的處理程序,

待處理完成后返回?cái)帱c(diǎn),繼續(xù)執(zhí)行被打斷的程序。20中斷的類(lèi)型按照Intel公司的文檔,中斷可以分為兩大類(lèi),即同步中斷和異步中斷。同步中斷:指當(dāng)CPU正在執(zhí)行指令的時(shí)候,由CPU的控制單元所發(fā)出的中斷,也稱(chēng)為“異常”;CPU檢測(cè)到的異常,包括:錯(cuò)誤Fault、

陷阱Trap和中止Abort,例如:算術(shù)溢出、被零除、用戶(hù)態(tài)下使用了特權(quán)指令等;程序設(shè)定的異常,即程序員通過(guò)int、int3等指令來(lái)發(fā)出的中斷請(qǐng)求,也稱(chēng)為軟中斷,主要用來(lái)實(shí)現(xiàn)系統(tǒng)調(diào)用服務(wù)。21異步中斷:指由其他的硬件設(shè)備在任意的時(shí)刻所發(fā)出的中斷,簡(jiǎn)稱(chēng)為“中斷”;可屏蔽中斷,即I/O中斷,它是當(dāng)外部設(shè)備或通道操作正常結(jié)束或發(fā)生錯(cuò)誤時(shí)所發(fā)生的中斷。例如:打印機(jī)打印完成、缺紙,讀磁盤(pán)時(shí)驅(qū)動(dòng)器中沒(méi)有磁盤(pán)等;不可屏蔽中斷,例如:由掉電、存儲(chǔ)器校驗(yàn)錯(cuò)等硬件故障引起的硬件中斷;每一個(gè)中斷或異常都用一個(gè)0-255之間的整數(shù)來(lái)標(biāo)識(shí),稱(chēng)為中斷向量,系統(tǒng)根據(jù)中斷向量,來(lái)為每一個(gè)中斷或異常指定相應(yīng)的處理程序。中斷嵌套在處理一個(gè)中斷事件時(shí),系統(tǒng)又響應(yīng)了新的中斷事件。程序執(zhí)行中斷中斷處理再次中斷嵌套中斷處理返回返回中斷的作用CPU與I/O設(shè)備并行工作:設(shè)備傳輸結(jié)束發(fā)中斷硬件故障處理:出現(xiàn)故障發(fā)中斷實(shí)現(xiàn)人機(jī)聯(lián)系:干預(yù)機(jī)器運(yùn)行,了解機(jī)器狀態(tài),下達(dá)臨時(shí)命令實(shí)現(xiàn)多道程序和分時(shí)系統(tǒng):切換實(shí)現(xiàn)實(shí)時(shí)處理:以中斷方式傳送實(shí)時(shí)信號(hào)實(shí)現(xiàn)應(yīng)用程序與OS聯(lián)系:如軟中斷多處理機(jī)間的聯(lián)系:以中斷方式實(shí)現(xiàn)多處理機(jī)間的信息交流和任務(wù)切換中斷優(yōu)先級(jí)中斷優(yōu)先級(jí)是中斷響應(yīng)的優(yōu)先級(jí)別。當(dāng)多個(gè)中斷發(fā)生時(shí),系統(tǒng)根據(jù)優(yōu)先級(jí)決定響應(yīng)中斷的次序,優(yōu)先響應(yīng)高優(yōu)先級(jí)的中斷,同級(jí)中斷則按硬件規(guī)定的次序響應(yīng)。中斷優(yōu)先級(jí)由高到低的順序?yàn)椋河布收现袛?、訪(fǎng)管中斷、程序性中斷、外部中斷、輸入/輸出中斷。中斷屏蔽中斷屏蔽表示暫時(shí)封鎖對(duì)中斷的響應(yīng),待屏蔽消除后再響應(yīng)。讓屏蔽字與一些中斷事件對(duì)應(yīng),當(dāng)某中斷屏蔽時(shí),其屏蔽標(biāo)志置位,表示封鎖對(duì)相應(yīng)事件的響應(yīng);當(dāng)中斷產(chǎn)生時(shí),若沒(méi)有屏蔽則響應(yīng)中斷,若屏蔽則暫時(shí)不響應(yīng)該中斷,待屏蔽標(biāo)志消除后再響應(yīng)。注意:自愿性中斷不能屏蔽。中斷響應(yīng)中斷響應(yīng):當(dāng)處理機(jī)發(fā)現(xiàn)中斷請(qǐng)求時(shí),終止現(xiàn)行程序的運(yùn)行,并自動(dòng)引出中斷處理程序的過(guò)程。其響應(yīng)流程如下圖所示。中斷響應(yīng)流程圖執(zhí)行一條指令指令結(jié)束?Y有中斷請(qǐng)求?開(kāi)中斷?YY響應(yīng)中斷取下條指令NN中斷響應(yīng)過(guò)程中斷響應(yīng)過(guò)程一般包含以下幾步:發(fā)現(xiàn)中斷源保護(hù)現(xiàn)場(chǎng)引出中斷處理程序發(fā)現(xiàn)中斷源發(fā)現(xiàn)中斷源:通過(guò)掃描中斷寄存器檢查有無(wú)中斷請(qǐng)求。中斷裝置:發(fā)現(xiàn)中斷源而產(chǎn)生中斷過(guò)程的設(shè)備稱(chēng)為中斷裝置。中斷由軟硬件協(xié)同完成,軟硬件部分合稱(chēng)中斷系統(tǒng)。中斷系統(tǒng)的職能是實(shí)現(xiàn)中斷進(jìn)入。斷點(diǎn)及恢復(fù)點(diǎn):發(fā)現(xiàn)中斷時(shí)剛執(zhí)行完的那條指令所在的單元號(hào)稱(chēng)為斷點(diǎn),斷點(diǎn)的邏輯后繼指令的單元號(hào)稱(chēng)為恢復(fù)點(diǎn)。保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng):當(dāng)中斷發(fā)生時(shí),將現(xiàn)場(chǎng)信息保存到內(nèi)存中。現(xiàn)場(chǎng):指中斷那一刻能確保程序繼續(xù)運(yùn)行的信息,主要包括:后繼指令單元號(hào)、程序運(yùn)行時(shí)CPU狀態(tài)、指令執(zhí)行情況、程序執(zhí)行中間結(jié)果?;謴?fù)現(xiàn)場(chǎng):被中斷程序恢復(fù)運(yùn)行之前,將保存的現(xiàn)場(chǎng)信息恢復(fù)到內(nèi)存中。引出中斷處理程序引出中斷處理程序:中斷發(fā)生時(shí),中斷系統(tǒng)將程序狀態(tài)字的內(nèi)容保存到主存約定單元中,再將中斷處理程序的程序狀態(tài)字送入相應(yīng)的寄存器,于是引出了中斷處理程序。中斷響應(yīng)的本質(zhì)是交換程序狀態(tài)字的內(nèi)容以保留程序斷點(diǎn)信息、自動(dòng)轉(zhuǎn)入相應(yīng)的中斷處理程序。中斷處理過(guò)程中斷處理功能由硬件和軟件配合完成。硬件負(fù)責(zé)中斷的發(fā)現(xiàn)及進(jìn)入,軟件負(fù)責(zé)中斷的分析處理及恢復(fù)工作。軟件中斷處理過(guò)程主要有三項(xiàng)工作:保護(hù)被中斷程序的現(xiàn)場(chǎng)并傳遞參數(shù)執(zhí)行相應(yīng)的中斷服務(wù)程序恢復(fù)被中斷程序的現(xiàn)場(chǎng)并退出中斷中斷處理例程簡(jiǎn)介1硬件故障中斷的處理:這類(lèi)故障一般需要人工干預(yù),OS所做工作是:保護(hù)現(xiàn)場(chǎng)、防止事故蔓延、向操作員報(bào)告并提供故障信息。程序性中斷的處理:大體有以下處理方法對(duì)純程序性錯(cuò)誤,如地址越界,OS將出錯(cuò)程序名、出錯(cuò)地址、錯(cuò)誤性質(zhì)報(bào)告給操作員對(duì)其他程序性錯(cuò),如溢出,可交給用戶(hù)自行處理,若用戶(hù)沒(méi)有提出處理辦法,則OS將出錯(cuò)程序名、出錯(cuò)地址、錯(cuò)誤性質(zhì)報(bào)告給操作員。中斷處理例程簡(jiǎn)介2外部中斷的處理:對(duì)不同中斷分別進(jìn)行處理。如時(shí)鐘中斷完成增加時(shí)鐘計(jì)數(shù)。外部設(shè)備中斷的處理:分為以下情況傳輸結(jié)束:決定傳輸是否結(jié)束。若未結(jié)束則啟動(dòng)下一次傳輸,否則置設(shè)備狀態(tài)為空閑。傳輸錯(cuò)誤:置設(shè)備空閑,報(bào)告?zhèn)鬏斿e(cuò)誤。故障:置設(shè)備空閑,報(bào)告設(shè)備錯(cuò)誤。訪(fǎng)管中斷的處理:根據(jù)系統(tǒng)調(diào)用號(hào)查得系統(tǒng)調(diào)用程序的入口地址,并轉(zhuǎn)入執(zhí)行。2.4向量中斷向量中斷:中斷發(fā)生時(shí)由中斷源引導(dǎo)CPU進(jìn)入中斷處理程序。中斷向量:由中斷處理程序入口地址及

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論