操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)教材_第1頁(yè)
操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)教材_第2頁(yè)
操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)教材_第3頁(yè)
操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)教材_第4頁(yè)
操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)教材_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)第四章I/O設(shè)備管理主講教師:史廣順 gsshigsshi1內(nèi)容提要要I/O設(shè)設(shè)備管理理概述I/O硬硬件原理理與軟件件原理進(jìn)程死鎖鎖I/O設(shè)設(shè)備管理理實(shí)例剖剖析內(nèi)容提要要2I/O設(shè)設(shè)備管理理系統(tǒng)結(jié)結(jié)構(gòu)圖設(shè)備管理理概述操作系統(tǒng)I/O硬件管理I/O軟件管理上層用戶戶程序(應(yīng)用層層)設(shè)備控制器命令寄存存器底層硬件設(shè)備(物理層)中斷處理理程序設(shè)備驅(qū)動(dòng)動(dòng)程序設(shè)備無(wú)關(guān)關(guān)程序用戶進(jìn)程程狀態(tài)寄存存器數(shù)據(jù)寄存存器3I/O設(shè)設(shè)備的特特點(diǎn)分析析操作系統(tǒng)統(tǒng)需要管管理的最最復(fù)雜的的資源I/O設(shè)備備I/O設(shè)設(shè)備種類類繁多,工作模模式各不不相同I/O設(shè)設(shè)備數(shù)據(jù)據(jù)多樣,處理方方式各不不相同I/O設(shè)設(shè)備性能能

2、參差,運(yùn)行控控制多種種多樣最容易成成為計(jì)算算機(jī)系統(tǒng)統(tǒng)的瓶頸頸I/O設(shè)設(shè)備很多I/O設(shè)備備使用機(jī)機(jī)械操作作,導(dǎo)致致其速度度較CPU相差差很大進(jìn)程運(yùn)行行中的輸輸入輸出出操作可可能造成成系統(tǒng)運(yùn)運(yùn)行的性性能瓶頸頸I/O管管理:如如何最大大限度保保證I/O設(shè)備備與CPU的并并行工作作最實(shí)用、最體現(xiàn)現(xiàn)操作系系統(tǒng)特色色的工作作I/O管管理兼容性:操作系系統(tǒng)最難難以完成成的使命命標(biāo)準(zhǔn)化:IT技技術(shù)迅速速普及發(fā)發(fā)展的本本質(zhì)高性能:I/O設(shè)備發(fā)發(fā)展的主主要目標(biāo)標(biāo)I/O硬件管理理4I/O設(shè)設(shè)備分類類按照設(shè)備備的功能能特性劃劃分存儲(chǔ)型設(shè)設(shè)備:保保存各類類數(shù)據(jù)(臨時(shí)或或永久)輸入輸出出型設(shè)備備:提供供人機(jī)交交互手段段數(shù)

3、據(jù)通信信型設(shè)備備:實(shí)現(xiàn)現(xiàn)電子數(shù)數(shù)據(jù)交換換按照數(shù)據(jù)據(jù)的組織織形式劃劃分塊設(shè)備:以數(shù)據(jù)據(jù)塊為單單位存儲(chǔ)儲(chǔ)、傳輸輸數(shù)據(jù)字符設(shè)備備:以字字節(jié)為單單位存儲(chǔ)儲(chǔ)、傳輸輸數(shù)據(jù)按照資源源分配的的形式劃劃分獨(dú)占式設(shè)設(shè)備:一一個(gè)時(shí)刻刻只能由由一個(gè)進(jìn)進(jìn)程使用用,一般般為低速速I/O設(shè)備共享式設(shè)設(shè)備:一一個(gè)時(shí)刻刻可由多多個(gè)進(jìn)程程使用,資源利利用率很很高虛擬式設(shè)設(shè)備:用用高速設(shè)設(shè)備模擬擬低速設(shè)設(shè)備,用用共享設(shè)設(shè)備模擬擬獨(dú)占設(shè)設(shè)備按照程序序使用的的方式劃劃分邏輯設(shè)備備:由操操作系統(tǒng)統(tǒng)維護(hù),簡(jiǎn)便用用戶操作作和控制制的“設(shè)設(shè)備結(jié)構(gòu)構(gòu)”物理設(shè)備備:由硬硬件結(jié)構(gòu)構(gòu)組成,真實(shí)完完成各類類I/O設(shè)備操操作I/O硬件管理理5I/O設(shè)設(shè)備

4、的差差別I/O設(shè)設(shè)備的評(píng)評(píng)價(jià)標(biāo)準(zhǔn)準(zhǔn)設(shè)備的數(shù)數(shù)據(jù)傳輸輸單位和和傳輸率率設(shè)備的數(shù)數(shù)據(jù)表示示和應(yīng)用用目標(biāo)設(shè)備的控控制方式式和出錯(cuò)錯(cuò)情況I/O硬件管理理6I/O管管理的任任務(wù)和目目標(biāo)根據(jù)用戶戶請(qǐng)求,控制各各類I/O設(shè)備備實(shí)現(xiàn)用用戶的目目標(biāo)控制設(shè)備備操作,實(shí)現(xiàn)設(shè)設(shè)備與內(nèi)內(nèi)存的數(shù)數(shù)據(jù)交換換設(shè)備的分分配與回回收、設(shè)設(shè)備驅(qū)動(dòng)動(dòng)程序、設(shè)備中中斷管理理、各類類緩沖區(qū)區(qū)管理等等向用戶提提供方便便的I/O設(shè)備備接口,屏蔽底底層硬件件細(xì)節(jié)差差別虛擬機(jī)邏輯輯設(shè)備的的作用:用戶能能夠簡(jiǎn)單單方便的的使用I/O設(shè)設(shè)備設(shè)備接口口的方便便性、友友好性、透明性性、設(shè)備備無(wú)關(guān)性性利用各種種技術(shù),提高I/O設(shè)設(shè)備的運(yùn)運(yùn)行效率率設(shè)備與CP

5、U之之間、設(shè)設(shè)備之間間的并行行設(shè)備負(fù)載載的均衡衡:保持持設(shè)備的的充分忙忙碌實(shí)現(xiàn)對(duì)I/O設(shè)設(shè)備的管管理和保保護(hù)設(shè)備的分分配與回回收:針針對(duì)獨(dú)占占設(shè)備和和共享設(shè)設(shè)備,實(shí)實(shí)現(xiàn)合理理的資源源分配設(shè)備的數(shù)數(shù)據(jù)保護(hù)護(hù):不同同設(shè)備之之間的保保護(hù)、設(shè)設(shè)備內(nèi)部部的保護(hù)護(hù)I/O硬件管理理7內(nèi)容提要要I/O設(shè)設(shè)備管理理概述I/O硬硬件原理理與軟件件原理進(jìn)程死鎖鎖I/O設(shè)設(shè)備管理理實(shí)例剖剖析內(nèi)容提要要8I/O設(shè)設(shè)備硬件件組成I/O設(shè)設(shè)備的硬硬件結(jié)構(gòu)構(gòu)機(jī)械部分分(物理理裝置):由模模擬信號(hào)號(hào)驅(qū)動(dòng)的的各種機(jī)機(jī)械裝置置控制器/適配器器(電子子裝置):實(shí)現(xiàn)現(xiàn)與主機(jī)機(jī)的連接接和通信信設(shè)備控制制器的工工作方式式常以板卡卡的形式式

6、與主板板的總線線插槽連連接通過(guò)設(shè)備備的接口口寄存器器、緩沖沖區(qū)與CPU進(jìn)進(jìn)行通信信設(shè)備控制制器的工工作內(nèi)容容地址譯碼碼:實(shí)現(xiàn)現(xiàn)對(duì)I/O地址址空間的的正確映映射外部通信信:接受受或者發(fā)發(fā)送數(shù)據(jù)據(jù)/狀態(tài)態(tài)信號(hào)執(zhí)行指令令:將數(shù)數(shù)字化指指令轉(zhuǎn)化化為機(jī)械械裝置能能夠理解解的模擬擬信號(hào)性能增強(qiáng)強(qiáng):實(shí)現(xiàn)現(xiàn)內(nèi)部硬硬件緩沖沖、完成成數(shù)據(jù)加加工等性性能提升升目標(biāo)I/O硬件管理理9操作系統(tǒng)統(tǒng)的硬件件環(huán)境課程導(dǎo)論論10I/O設(shè)設(shè)備接口口的工作作流程I/O操操作過(guò)程程的細(xì)分分準(zhǔn)備、啟啟動(dòng)、測(cè)測(cè)試和等等待、結(jié)結(jié)果檢查查和錯(cuò)誤誤處理I/O設(shè)設(shè)備接口口的作用用接口寄存存器:保保存命令令、狀態(tài)態(tài)或者數(shù)數(shù)據(jù)接口緩沖沖區(qū):用用來(lái)保

7、存存大量數(shù)數(shù)據(jù)的緩緩沖區(qū)通過(guò)I/O設(shè)備備接口,CPU可以設(shè)設(shè)定指令令或狀態(tài)態(tài)、可以以讀取狀狀態(tài)和結(jié)結(jié)果I/O設(shè)設(shè)備接口口的工作作方式設(shè)置命令令寄存器器和狀態(tài)態(tài)寄存器器:CPU通過(guò)過(guò)總線與與I/O接口通通信I/O設(shè)設(shè)備與CPU并并行工作作:控制制器根據(jù)據(jù)指令完完成相應(yīng)應(yīng)I/O操作通過(guò)中斷斷向CPU發(fā)出出信號(hào):工作完完成后通通過(guò)硬件件中斷通通知CPUI/O硬件管理理11I/O設(shè)設(shè)備接口口的工作作流程(續(xù))IBMPC的的軟盤控控制器可接受15條指指令:READ、WRITE、SEEK、FORMAT等各條指令令均可帶帶參數(shù),指令和和相關(guān)參參數(shù)均被被設(shè)置到到接口寄寄存器中中位串行工工作機(jī)制制:驅(qū)動(dòng)動(dòng)器提供

8、供“位流流”,控控制器負(fù)負(fù)責(zé)在緩緩沖區(qū)中中將其組組裝為字字節(jié),并并進(jìn)行必必要的校校驗(yàn)和糾糾錯(cuò)顯示器的的控制器器位串行工工作機(jī)制制:從顯顯示緩沖沖區(qū)中讀讀取可供供顯示的的內(nèi)容,而后產(chǎn)產(chǎn)生用來(lái)來(lái)調(diào)制CRT電電子束的的信號(hào)I/O設(shè)設(shè)備接口口的價(jià)值值屏蔽底層層硬件細(xì)細(xì)節(jié),降降低應(yīng)用用者的操操作難度度體現(xiàn)模塊塊化的特特點(diǎn),適適應(yīng)不同同的應(yīng)用用環(huán)境通過(guò)對(duì)I/O設(shè)設(shè)備接口口進(jìn)行標(biāo)標(biāo)準(zhǔn)化,即可方方便實(shí)現(xiàn)現(xiàn)兼容I/O硬件管理理12計(jì)算機(jī)的的系統(tǒng)結(jié)結(jié)構(gòu)圖課程導(dǎo)論論13I/O設(shè)設(shè)備的連連接與地地址映射射I/O設(shè)設(shè)備的連連接方式式連接路徑徑:I/O設(shè)備備與CPU建立立連接時(shí)時(shí),所有有有關(guān)組組件構(gòu)成成連接路路徑I/O端

9、端口:I/O設(shè)設(shè)備接口口中有多多個(gè)接口口寄存器器或緩沖沖區(qū),每每一個(gè)寄寄存器或或緩沖區(qū)區(qū)被稱為為一個(gè)I/O端端口I/O端端口地址址空間:實(shí)現(xiàn)對(duì)對(duì)I/O接口寄寄存器/緩沖區(qū)區(qū)的訪問(wèn)問(wèn)I/O設(shè)設(shè)備端口口的編址址方式I/O端端口獨(dú)立立編址:與內(nèi)存存空間完完全獨(dú)立立內(nèi)存映射射I/O地址:在內(nèi)存存空間中中劃分固固定區(qū)域域映射I/O端端口I/O地地址空間間的編址址方式和和使用差差別指令運(yùn)行行差別:訪問(wèn)的的地址空空間不同同系統(tǒng)資源源消耗:所需要要的資源源數(shù)不同同優(yōu)缺點(diǎn)權(quán)權(quán)衡:總總線規(guī)格格、地址址信息傳傳輸與過(guò)過(guò)濾、系系統(tǒng)性能能等因素素I/O硬件管理理14I/O端端口獨(dú)立立編址模模式I/O地地址與內(nèi)內(nèi)存空間間

10、完全獨(dú)獨(dú)立使用專用用的I/O指令令對(duì)I/O端口口進(jìn)行操操作優(yōu)缺點(diǎn)分分析優(yōu)點(diǎn)1:I/O設(shè)備不不占用內(nèi)內(nèi)存地址址空間,減少系系統(tǒng)資源源消耗優(yōu)點(diǎn)2:技術(shù)實(shí)實(shí)現(xiàn)復(fù)雜雜度低,易于區(qū)區(qū)分I/O地址址和內(nèi)存存地址缺點(diǎn):由由于地址址空間獨(dú)獨(dú)立、狹狹小,導(dǎo)導(dǎo)致指令令類型少少,只能能使用簡(jiǎn)簡(jiǎn)單的匯匯編語(yǔ)言言編程I/O硬件管理理15I/O端端口的內(nèi)內(nèi)存映射射編址方方式I/O端端口地址址空間和和內(nèi)存地地址空間間統(tǒng)一編編址I/O端端口地址址也被作作為物理理地址空空間的一一部分進(jìn)進(jìn)行存儲(chǔ)儲(chǔ)管理CPU訪訪問(wèn)地址址空間時(shí)時(shí),將對(duì)對(duì)地址空空間的范范圍進(jìn)行行判斷,然后選選擇讀取取內(nèi)存空空間或者者訪問(wèn)I/O端端口內(nèi)存映射射編址的的

11、優(yōu)缺點(diǎn)點(diǎn)分析優(yōu)點(diǎn)1:使得技技術(shù)實(shí)現(xiàn)現(xiàn)手段更更加方便便,可用用C語(yǔ)言言編寫驅(qū)驅(qū)動(dòng)程序序優(yōu)點(diǎn)2:不需要要對(duì)I/O地址址空間進(jìn)進(jìn)行特殊殊保護(hù),只需要要利用現(xiàn)現(xiàn)有的存存儲(chǔ)保護(hù)護(hù)機(jī)制(例如分分頁(yè)式中中的頁(yè)表表項(xiàng)設(shè)置置)優(yōu)點(diǎn)3:使得I/O端端口的指指令更加加靈活多多樣缺點(diǎn)1:內(nèi)存映映射方式式中必須須保證I/O端端口的實(shí)實(shí)時(shí)性(禁用高高速緩存存)缺點(diǎn)2:對(duì)于雙雙總線或或者多總總線結(jié)構(gòu)構(gòu)而言,I/O端口的的地址映映射將比比較困難難和麻煩煩I/O硬件管理理16I/O端端口地址址的映射射與訪問(wèn)問(wèn)I/O硬件管理理混合方案案中,內(nèi)內(nèi)存空間間負(fù)責(zé)管管理I/O端口,I/O獨(dú)立編址址部分屬屬于數(shù)據(jù)據(jù)緩沖區(qū)區(qū)。例如如Pent

12、ium就使用了了這種方方式17系統(tǒng)總線線對(duì)I/O端口口編址的的影響I/O硬件管理理18系統(tǒng)總線線對(duì)I/O端口口編址的的影響I/O硬件管理理19I/O設(shè)設(shè)備的控控制方式式程序控制制I/O(輪詢?cè)兓蛎Φ鹊却J绞剑〤PU直直接與I/O設(shè)設(shè)備進(jìn)行行通信,負(fù)責(zé)將將用戶數(shù)數(shù)據(jù)傳送送到I/O端口口用戶程序序通過(guò)系系統(tǒng)調(diào)用用來(lái)使用用I/O設(shè)備CPU需需要不斷斷查詢I/O設(shè)設(shè)備的端端口狀態(tài)態(tài),性能能較低中斷控制制I/OCPU設(shè)設(shè)定I/O設(shè)備備的初始始值,然然后不再再忙等待待,運(yùn)行行其他進(jìn)進(jìn)程,當(dāng)當(dāng)前進(jìn)程程阻塞I/O設(shè)設(shè)備完成成對(duì)當(dāng)前前數(shù)據(jù)的的處理后后,向CPU發(fā)發(fā)出中斷斷,I/O中斷斷處理程程序?qū)⒇?fù)負(fù)責(zé)傳送送

13、剩余數(shù)數(shù)據(jù)中斷控制制模式依依然造成成CPU時(shí)間的的浪費(fèi),而且效效率不高高DMA控控制I/O使用獨(dú)立立的DMA控制制器代替替CPU的工作作,I/O設(shè)備備與DMA通信信,DMA在傳傳輸完成成一個(gè)數(shù)數(shù)據(jù)緩沖沖區(qū)之后后再向CPU發(fā)發(fā)中斷DMA模模式減少少了中斷斷次數(shù),同時(shí)又又集成了了程序控控制和中中斷控制制的優(yōu)點(diǎn)點(diǎn)I/O通通道機(jī)制制DMA機(jī)機(jī)制過(guò)于于簡(jiǎn)單,有時(shí)未未必能夠夠提高與與CPU并行效效率為此專門門增加了了I/O處理機(jī)機(jī),專門門負(fù)責(zé)I/O設(shè)設(shè)備的控控制和操操作,與與CPU并行工工作I/O硬件管理理20程序控制制I/O的工作作流程I/O硬件管理理由操作系系統(tǒng)的“服務(wù)程程序”負(fù)負(fù)責(zé)將用用戶數(shù)據(jù)據(jù)傳送

14、至至打印機(jī)機(jī)端口服務(wù)程序序順序傳傳送打印印數(shù)據(jù),填滿接接口緩沖沖區(qū)后就就等待(空循環(huán)環(huán))每次循環(huán)環(huán)中都檢檢查接口口緩沖區(qū)區(qū)是否可可用,一一旦可用用就繼續(xù)續(xù)傳送數(shù)數(shù)據(jù)數(shù)據(jù)傳送送完成后后“服務(wù)務(wù)程序”結(jié)束,用戶進(jìn)進(jìn)程繼續(xù)續(xù)運(yùn)行缺點(diǎn):靠靠CPU以“忙忙等待”的形式式與打印印機(jī)進(jìn)行行通信,浪費(fèi)CPU資資源21中斷控制制I/O的工作作流程I/O硬件管理理“打印服服務(wù)程序序”只將將最開始始的數(shù)據(jù)據(jù)傳送至至打印機(jī)機(jī)端口,然后阻阻塞CPU可可繼續(xù)調(diào)調(diào)度其他他進(jìn)程運(yùn)運(yùn)行,不不浪費(fèi)CPU時(shí)時(shí)間一旦打印印緩沖區(qū)區(qū)空后,打印機(jī)機(jī)端口發(fā)發(fā)出硬件件中斷CPU響響應(yīng)中斷斷,恢復(fù)復(fù)“打印印服務(wù)程程序”運(yùn)運(yùn)行,繼繼續(xù)傳送送數(shù)據(jù)

15、缺點(diǎn):雖雖然節(jié)省省了CPU資源源,但是是中斷響響應(yīng)也消消耗較大大的系統(tǒng)統(tǒng)資源22DMA控控制I/O的工工作流程程I/O硬件管理理用戶進(jìn)程程發(fā)出系系統(tǒng)調(diào)用用后進(jìn)入入阻塞態(tài)態(tài),CPU直接接設(shè)置DMA端端口CPU與與DMA并行工工作,DMA負(fù)負(fù)責(zé)將用用戶數(shù)據(jù)據(jù)傳送給給打印機(jī)機(jī)當(dāng)DMA完成所所有工作作后,向向CPU發(fā)出中中斷,CPU響響應(yīng)后喚喚醒用戶戶進(jìn)程優(yōu)點(diǎn):只只有一次次中斷、DMA與CPU并行行提高了了系統(tǒng)運(yùn)運(yùn)行效率率缺點(diǎn):DMA速速度較慢慢,如果果CPU并不繁繁忙,那那么DMA機(jī)制制并無(wú)太太大意義義23DMA工工作方式式的深入入分析DMA內(nèi)內(nèi)部結(jié)構(gòu)構(gòu)的差異異單路I/O連接接:DMA中只只有一組組

16、寄存器器,只能能連接一一個(gè)I/O設(shè)備備多路I/O連接接:DMA中有有多組寄寄存器,可同時(shí)時(shí)連接多多個(gè)I/O設(shè)備備多路I/O連接接模式下下,DMA內(nèi)部部也需要要進(jìn)行適適當(dāng)?shù)恼{(diào)調(diào)度(輪輪轉(zhuǎn)、優(yōu)優(yōu)先級(jí))DMA工工作方式式的差異異數(shù)據(jù)總線線的工作作模式:塊模式式和字符符模式,傳輸數(shù)數(shù)據(jù)的速速率不同同字符模式式(周期期竊取):DMA竊取取一個(gè)總總線周期期以傳輸輸一個(gè)字字,造成成CPU輕微延延遲塊模式(突發(fā)模模式):DMA獲得總總線控制制權(quán)后連連續(xù)發(fā)出出多個(gè)請(qǐng)請(qǐng)求,提提高總線線利用效效率飛越模式式:DMA內(nèi)部部存在數(shù)數(shù)據(jù)緩沖沖,設(shè)備備將數(shù)據(jù)據(jù)發(fā)送給給DMA,DMA再進(jìn)進(jìn)行轉(zhuǎn)發(fā)發(fā)DMA模模式的權(quán)權(quán)衡與分分析

17、DMA保保存的地地址信息息:絕大大多數(shù)情情況下DMA保保存的是是物理地地址,CPU負(fù)負(fù)責(zé)將用用戶地址址轉(zhuǎn)換為為物理地地址,然然后將其其設(shè)置到到DMA中DMA的的數(shù)據(jù)緩緩沖:DMA內(nèi)內(nèi)部也會(huì)會(huì)使用數(shù)數(shù)據(jù)緩沖沖,這樣樣會(huì)大大大提高I/O通通信效率率DMA的的優(yōu)劣分分析:DMA比比CPU慢好多多,簡(jiǎn)單單的應(yīng)用用環(huán)境中中,用CPU要要比DMA好;只有存存在頻繁繁的多道道程序并并發(fā)的情情況下,DMA才會(huì)體體現(xiàn)與CPU并并行的作作用I/O硬件管理理24I/O通通道機(jī)制制的引入入與實(shí)現(xiàn)現(xiàn)I/O通通道(Channel)的概概念如何以高高速、高高效的方方式控制制I/O設(shè)備,是I/O管理理的重要要問(wèn)題DMA速速度

18、很慢慢,而且且結(jié)構(gòu)簡(jiǎn)簡(jiǎn)單,無(wú)無(wú)法執(zhí)行行相對(duì)復(fù)復(fù)雜的程程序引入I/O通道道(專門門的處理理機(jī)),可以運(yùn)運(yùn)行由通通道指令令組成的的通道程程序I/O通通道的工工作方式式和分類類分為字節(jié)節(jié)多路通通道、選選擇通道道、成組組多路通通道三種種I/O通通道采取取“竊取取總線周周期”的的方式實(shí)實(shí)現(xiàn)對(duì)I/O設(shè)設(shè)備的控控制和數(shù)數(shù)據(jù)傳輸輸I/O通通道就是是一個(gè)小小型的處處理機(jī),和CPU共享享內(nèi)存I/O通通道接到到CPU的指令令后即啟啟動(dòng)通道道命令/程序,獨(dú)立于于CPU控制I/O設(shè)設(shè)備工作作I/O通通道的結(jié)結(jié)構(gòu)組成成CAW:通道地地址寄存存器,用用于記錄錄通道程程序在內(nèi)內(nèi)存中的的地址CCW:通道命命令寄存存器,用用于保

19、存存當(dāng)前正正在運(yùn)行行的通道道命令CSW:通道狀狀態(tài)寄存存器,用用于保存存命令執(zhí)執(zhí)行后的的結(jié)果CDW:通道數(shù)數(shù)據(jù)寄存存器,用用于存放放傳輸?shù)牡臄?shù)據(jù)(起到緩緩沖的作作用)I/O硬件管理理25不同類型型的I/O通道道I/O硬件管理理26單通道與與多通道道I/O硬件管理理27I/O軟軟件原理理I/O軟軟件的設(shè)設(shè)計(jì)需求求有哪些些?解決同步步(阻塞塞)異異步(傳傳輸)的的問(wèn)題。底層:如如何傳送送控制命命令?如如何傳輸輸數(shù)據(jù)?上層:如如何向用用戶屏蔽蔽此過(guò)程程?如何何調(diào)度I/O進(jìn)進(jìn)程實(shí)現(xiàn)對(duì)設(shè)設(shè)備訪問(wèn)問(wèn)的錯(cuò)誤誤處理。簡(jiǎn)單情況況:可在在硬件底底層解決決的錯(cuò)誤誤復(fù)雜情況況:無(wú)法法有效解解決,只只能通知知高層的的錯(cuò)

20、誤為便于人人的使用用,實(shí)現(xiàn)現(xiàn)設(shè)備無(wú)無(wú)關(guān)性統(tǒng)一一命名法法。如何讓用用戶無(wú)需需考慮各各種設(shè)備備的差別別,采用用相同的的習(xí)慣來(lái)來(lái)使用?如何管理理不同設(shè)設(shè)備的統(tǒng)統(tǒng)一命名名?實(shí)現(xiàn)現(xiàn)名稱與與設(shè)備的的映射?I/O設(shè)設(shè)備的緩緩沖管理理緩沖區(qū)的的維護(hù)與與使用;實(shí)時(shí)I/O設(shè)設(shè)備中緩緩沖區(qū)的的預(yù)存和和實(shí)時(shí)性性保持實(shí)現(xiàn)對(duì)專專有設(shè)備備的和共共享設(shè)備備的有效效管理共享設(shè)備備:如何何記錄共共享狀態(tài)態(tài)?專有設(shè)備備:如何何實(shí)現(xiàn)對(duì)對(duì)專有設(shè)設(shè)備的互互斥性訪訪問(wèn)?I/O軟件管理理28I/O軟軟件體系系結(jié)構(gòu)I/O軟件管理理中斷處理理程序底層硬件件設(shè)備設(shè)備驅(qū)動(dòng)動(dòng)程序用戶I/O軟件設(shè)備無(wú)關(guān)關(guān)軟件I/O請(qǐng)求I/O響應(yīng)提供系統(tǒng)統(tǒng)庫(kù)調(diào)用用,供人

21、人員使用用;提供供類似Spooling這樣的精精靈守護(hù)護(hù)進(jìn)程管管理共享享設(shè)備命名、保保護(hù)、阻阻塞、緩緩沖建立設(shè)備備寄存器器、解決決錯(cuò)誤處理中斷斷信號(hào)29中斷處理理程序控制I/O設(shè)備備的基本本方法用戶發(fā)出出系統(tǒng)調(diào)調(diào)用或直直接調(diào)用用I/O設(shè)備,然后用用戶進(jìn)程程阻塞設(shè)備驅(qū)動(dòng)動(dòng)程序啟啟動(dòng)I/O操作作,然后后自己阻阻塞I/O設(shè)設(shè)備完成成操作后后產(chǎn)生中中斷,對(duì)對(duì)應(yīng)的中中斷服務(wù)務(wù)程序更更新各種種狀態(tài)信信息用戶進(jìn)程程恢復(fù)為為就緒,繼續(xù)運(yùn)運(yùn)行中斷處理理程序的的工作過(guò)過(guò)程保存CPU現(xiàn)場(chǎng)場(chǎng)信息:各類寄寄存器(最重要要的是PSW)為中斷服服務(wù)程序序設(shè)定CPU上上下文:TLB、內(nèi)核核堆棧等等應(yīng)答中斷斷控制器器:屏蔽蔽同

22、類中中斷、打打開其他他中斷恢復(fù)中斷斷服務(wù)進(jìn)進(jìn)程的運(yùn)運(yùn)行,完完成對(duì)設(shè)設(shè)備控制制器接口口的操作作操作結(jié)束束后進(jìn)行行調(diào)度,改變用用戶進(jìn)程程狀態(tài),選擇下下一個(gè)運(yùn)運(yùn)行程序序用戶進(jìn)程程恢復(fù)正正常運(yùn)行行,此時(shí)時(shí)設(shè)備驅(qū)驅(qū)動(dòng)程序序無(wú)事可可干,又又陷入阻阻塞I/O軟件管理理30設(shè)備驅(qū)動(dòng)動(dòng)程序設(shè)備驅(qū)動(dòng)動(dòng)程序的的特點(diǎn)用來(lái)控制制設(shè)備控控制器的的代碼和和指令,被稱為為設(shè)備驅(qū)驅(qū)動(dòng)程序序目前的體體系結(jié)構(gòu)構(gòu)中,設(shè)設(shè)備驅(qū)動(dòng)動(dòng)程序?qū)賹儆诓僮髯飨到y(tǒng)的的內(nèi)核部部分操作系統(tǒng)統(tǒng)實(shí)現(xiàn)過(guò)過(guò)程中,需要提提供標(biāo)準(zhǔn)準(zhǔn)化的接接口函數(shù)數(shù),用于于封裝設(shè)設(shè)備驅(qū)動(dòng)動(dòng)程序設(shè)備驅(qū)動(dòng)動(dòng)的存在在形式:與操作作系統(tǒng)統(tǒng)統(tǒng)一編譯譯,或者者運(yùn)行時(shí)時(shí)動(dòng)態(tài)鏈鏈接設(shè)備驅(qū)動(dòng)動(dòng)程序的

23、的工作過(guò)過(guò)程接受上層層用戶發(fā)發(fā)送的各各類參數(shù)數(shù),并對(duì)對(duì)輸入?yún)?shù)進(jìn)行行檢查對(duì)硬件設(shè)設(shè)備的可可用性進(jìn)進(jìn)行檢查查,并接接通或者者啟動(dòng)設(shè)設(shè)備控制設(shè)備備完成對(duì)對(duì)應(yīng)的操操作(通通過(guò)設(shè)置置接口寄寄存器實(shí)實(shí)現(xiàn))實(shí)現(xiàn)數(shù)據(jù)據(jù)的I/O,同同時(shí)返回回操作的的狀態(tài)結(jié)結(jié)果。設(shè)備驅(qū)動(dòng)動(dòng)工作過(guò)過(guò)程中的的特殊考考慮設(shè)備驅(qū)動(dòng)動(dòng)的工作作方式:同步阻阻塞或持持續(xù)運(yùn)行行同步阻塞塞模式下下,必須須考慮支支持“中中斷嵌套套”的情情況,將將其設(shè)計(jì)計(jì)為可重重入熱插拔系系統(tǒng)中,自動(dòng)的的適應(yīng)設(shè)設(shè)備插入入或者卸卸載I/O軟件管理理31設(shè)備驅(qū)動(dòng)動(dòng)程序的的統(tǒng)一接接口I/O軟件管理理32緩沖機(jī)制制的設(shè)計(jì)計(jì)與實(shí)現(xiàn)現(xiàn)I/O軟件管理理33用戶空間間的I/O軟

24、件件I/O操操作相關(guān)關(guān)的庫(kù)函函數(shù)或工工具包實(shí)現(xiàn)對(duì)OS內(nèi)核核設(shè)備I/O管管理機(jī)制制的封裝裝向應(yīng)用層層用戶提提供規(guī)范范、簡(jiǎn)潔潔的操作作接口實(shí)現(xiàn)I/O管理理底層機(jī)機(jī)制與上上層用戶戶的交互互假脫機(jī)(Spooling)技術(shù)通過(guò)應(yīng)用用軟件來(lái)來(lái)實(shí)現(xiàn)對(duì)對(duì)獨(dú)占式式I/O設(shè)備的的管理緩沖封封裝:用用戶只需需要管理理“特殊殊I/O文件”守護(hù)進(jìn)程程(Daemon):實(shí)現(xiàn)假假脫機(jī)目目錄利用應(yīng)用用程序,將獨(dú)占占式I/O設(shè)備備虛擬為為共享設(shè)設(shè)備I/O軟件管理理34I/O設(shè)設(shè)備管理理小結(jié)I/O設(shè)設(shè)備管理理面對(duì)的的各種沖沖突和矛矛盾“獨(dú)特性性”與“兼容性性”標(biāo)準(zhǔn)化化環(huán)境下下的發(fā)展展選擇“高性能能”與“友好性性”系統(tǒng)資資源消耗耗

25、的代價(jià)價(jià)取舍硬件實(shí)現(xiàn)現(xiàn)與軟件件模擬成本本與性能能之間的的權(quán)衡I/O設(shè)設(shè)備管理理的思維維方式統(tǒng)一、規(guī)規(guī)范的軟軟硬件平平臺(tái)是一一切技術(shù)術(shù)發(fā)展的的基礎(chǔ)性能穩(wěn)定定和錯(cuò)誤誤處理機(jī)機(jī)制是一一切應(yīng)用用普及的的前提系統(tǒng)觀:軟硬搭搭配、高高低結(jié)合合是復(fù)雜雜問(wèn)題的的解決思思路未來(lái)趨勢(shì)勢(shì):隨著著硬件成成本的降降低,軟軟件的作作用越來(lái)來(lái)越大I/O設(shè)備管理理35內(nèi)容提要要I/O設(shè)設(shè)備管理理概述I/O硬硬件原理理與軟件件原理進(jìn)程死鎖鎖I/O設(shè)設(shè)備管理理實(shí)例剖剖析內(nèi)容提要要36進(jìn)程死鎖鎖原理死鎖舉例例進(jìn)程A:獲得CD-ROM使使用權(quán),申請(qǐng)打打印機(jī)進(jìn)程B:獲得打打印機(jī)使使用權(quán),申請(qǐng)CD-ROM死鎖:此此時(shí)進(jìn)程程A、B均被阻阻

26、塞,無(wú)無(wú)法運(yùn)行行進(jìn)程死鎖鎖進(jìn)程A進(jìn)程B打印機(jī)CD-ROM37進(jìn)程死鎖鎖原理死鎖的定定義進(jìn)程死鎖鎖若一個(gè)進(jìn)進(jìn)程集合合中的每每一個(gè)進(jìn)進(jìn)程都在在等待只只能由本本集合中中其他進(jìn)進(jìn)程引發(fā)發(fā)的事件件。則這這種情況況為死鎖鎖。死鎖發(fā)生生的條件件互斥條件件:每一一個(gè)資源源或者空空閑,或或者被分分配給一一個(gè)進(jìn)程程保持和等等待條件件:已占占有某些些資源的的進(jìn)程需需申請(qǐng)新新的資源源后方可可繼續(xù)運(yùn)運(yùn)行非剝奪條條件:被被進(jìn)程占占用的資資源不可可剝奪,只能被被進(jìn)程本本身顯式式釋放循環(huán)等待待條件:系統(tǒng)必必然存在在一條由由兩個(gè)或或兩個(gè)以以上進(jìn)程程組成的的循環(huán)鏈鏈,該循循環(huán)鏈中中每個(gè)進(jìn)進(jìn)程都在在等待臨臨近的進(jìn)進(jìn)程釋放放資源38

27、如何理解解死鎖概念基礎(chǔ)礎(chǔ)資源、可可剝奪資資源與不不可剝奪奪資源可剝奪資資源會(huì)造造成死鎖鎖嗎?(舉例)發(fā)生條件件分析保持當(dāng)前前資源,等待未未分配資資源存在循環(huán)環(huán)的保持持等待鏈鏈,造成成死鎖情情況對(duì)比理解解死鎖與互互斥有哪哪些異同同?操作系統(tǒng)統(tǒng)為什么么要解決決死鎖問(wèn)問(wèn)題?在所有的的操作系系統(tǒng)中都都會(huì)發(fā)生生死鎖問(wèn)問(wèn)題嗎?進(jìn)程死鎖鎖39死鎖的形形式化描描述基于有向向圖描述述死鎖條條件進(jìn)程死鎖鎖40死鎖現(xiàn)象象與死鎖鎖過(guò)程產(chǎn)生死鎖鎖的進(jìn)程程運(yùn)行過(guò)過(guò)程示例例進(jìn)程死鎖鎖41死鎖現(xiàn)象象與死鎖鎖過(guò)程進(jìn)程死鎖鎖產(chǎn)生死鎖鎖的進(jìn)程程運(yùn)行過(guò)過(guò)程示例例42死鎖處理理策略不理會(huì)死死鎖原因:為為什么耗耗費(fèi)大量量的時(shí)間間在小概概

28、率事件件上呢?死鎖檢測(cè)測(cè)與恢復(fù)復(fù)目標(biāo):檢檢測(cè)死鎖鎖發(fā)生,通過(guò)撤撤銷進(jìn)程程恢復(fù)系系統(tǒng)運(yùn)行行死鎖預(yù)防防目標(biāo):對(duì)對(duì)進(jìn)程加加以適當(dāng)當(dāng)限制以以防止死死鎖情況況發(fā)生死鎖避免免目標(biāo):不不對(duì)進(jìn)程程加以限限制,由由操作系系統(tǒng)完成成死鎖預(yù)預(yù)防進(jìn)程死鎖鎖43鴕鳥算法法核心思想想:忽略略死鎖問(wèn)問(wèn)題原因:死死鎖問(wèn)題題的發(fā)生生是小概概率事件件策略分析析方便性與與正確性性之間的的選擇平均情況況與最壞壞情況的的選擇進(jìn)程死鎖鎖44死鎖檢測(cè)測(cè)與恢復(fù)復(fù)核心思想想:將系系統(tǒng)從死死鎖中解解脫方法動(dòng)機(jī)機(jī):與其其耗費(fèi)大大量時(shí)間間來(lái)避免免死鎖的的發(fā)生,不如采采取有效效的手段段解決死死鎖死鎖檢測(cè)測(cè)的解決決方法每個(gè)類型型的資源源只有一一個(gè):基基

29、于圖和和集合的的算法檢檢測(cè)是否否有閉環(huán)環(huán)每個(gè)類型型的資源源有多個(gè)個(gè):基于于矩陣和和向量比比較方法法檢測(cè)是是否存在在死鎖死鎖恢復(fù)復(fù)的解決決方法進(jìn)行資源源搶占:將某個(gè)個(gè)進(jìn)程的的資源強(qiáng)強(qiáng)制性分分配給其其他進(jìn)程程利用回退退恢復(fù):設(shè)定檢檢查點(diǎn),發(fā)現(xiàn)存存在死鎖鎖情況后后則回退退殺死進(jìn)程程恢復(fù):直接殺殺掉占用用資源的的進(jìn)程,使得其其他進(jìn)程程得以運(yùn)運(yùn)行;最最關(guān)鍵的的問(wèn)題是是選擇殺殺死哪一一個(gè)進(jìn)程程進(jìn)程死鎖鎖45死鎖檢測(cè)測(cè)算法簡(jiǎn)簡(jiǎn)介每個(gè)類型型的資源源只有一一個(gè)建立資源源分配圖圖結(jié)構(gòu),記錄了了所有的的進(jìn)程、資源和和有向邊邊從任一結(jié)結(jié)點(diǎn)開始始進(jìn)行深深度優(yōu)先先遍歷,如找到到閉環(huán)則則結(jié)束如某條遍遍歷路徑徑已經(jīng)到到達(dá)終點(diǎn)

30、點(diǎn),則回回退至上上一結(jié)點(diǎn)點(diǎn),繼續(xù)續(xù)重復(fù)此此過(guò)程每個(gè)類型型的資源源有多個(gè)個(gè)建立現(xiàn)有有資源標(biāo)標(biāo)量、可可用資源源標(biāo)量、當(dāng)前分分配矩陣陣、請(qǐng)求求矩陣等等數(shù)據(jù)結(jié)結(jié)構(gòu)對(duì)當(dāng)前分分配矩陣陣,尋找找可滿足足資源需需求的進(jìn)進(jìn)程,對(duì)對(duì)其標(biāo)記記如果有進(jìn)進(jìn)程沒有有被標(biāo)記記,說(shuō)明明該進(jìn)程程是死鎖鎖進(jìn)程進(jìn)程死鎖鎖46死鎖預(yù)防防核心思想想:對(duì)進(jìn)進(jìn)程加以以限制防防止死鎖鎖發(fā)生設(shè)計(jì)思路路:針對(duì)對(duì)四個(gè)死死鎖條件件,逐一一避免具體解決決方法互斥條件件:使用用Spooling技技術(shù)來(lái)管管理設(shè)備備(保持和等等待條件件:資源源可用性性決定資資源分配配不可剝奪奪條件:由系統(tǒng)統(tǒng)直接剝剝奪此類類資源循環(huán)鏈條條件:資資源編號(hào)號(hào),按預(yù)預(yù)定規(guī)則則申請(qǐng)

31、進(jìn)程死鎖鎖47死鎖避免免核心思想想:不對(duì)對(duì)進(jìn)程進(jìn)進(jìn)行限制制,預(yù)防防死鎖設(shè)計(jì)思路路:操作作系統(tǒng)分分析資源源分配情情況防止止死鎖核心思想想安全狀態(tài)態(tài):存在在某種資資源調(diào)度度順序,保證所所有進(jìn)程程正常運(yùn)運(yùn)行完成成,則稱稱該狀態(tài)態(tài)為安全全狀態(tài)不安全狀狀態(tài):不不存在可可滿足所所有進(jìn)程程正常運(yùn)運(yùn)行的資資源調(diào)度度順序,則稱該該狀態(tài)為為不安全全狀態(tài)具體實(shí)現(xiàn)現(xiàn)方法資源軌跡跡圖:針針對(duì)兩個(gè)個(gè)進(jìn)程的的死鎖避避免銀行家算算法:?jiǎn)螁畏N資源源和多種種資源的的算法進(jìn)程死鎖鎖48使用資源源軌跡圖圖方法避避免死鎖鎖針對(duì)兩個(gè)個(gè)進(jìn)程、兩種資資源的死死鎖避免免方法條件:兩個(gè)進(jìn)程程A和B,兩種種資源“打印機(jī)機(jī)”和“繪圖儀儀”根據(jù)指令令

32、運(yùn)行過(guò)過(guò)程來(lái)判判斷是否否發(fā)生死死鎖進(jìn)程A:P點(diǎn)啟啟動(dòng),I1I3使用用打印機(jī)機(jī),I2I4使用繪繪圖儀;進(jìn)程B:Q點(diǎn)啟啟動(dòng),I5I7使用用繪圖儀儀,I6I8使用打打印機(jī);進(jìn)程死鎖鎖49使用資源源軌跡圖圖方法避避免死鎖鎖進(jìn)程死鎖鎖50單種資源源銀行家家算法核心思想想記錄每個(gè)個(gè)進(jìn)程的的已有資資源和所所需最大大資源數(shù)數(shù)對(duì)每一個(gè)個(gè)資源請(qǐng)請(qǐng)求進(jìn)行行檢查,判斷是是否會(huì)造造成不安安全如果不安安全則不不分配,從而避避免死鎖鎖方法分析析對(duì)任何資資源請(qǐng)求求,都尋尋找是否否存在安安全狀態(tài)態(tài)序列不抱僥幸幸心理,防止任任何死鎖鎖情況的的發(fā)生進(jìn)程死鎖鎖51單種資源源銀行家家算法進(jìn)程死鎖鎖52多種資源源銀行家家算法核心思想想對(duì)

33、單種資資源銀行行家算法法進(jìn)行擴(kuò)擴(kuò)充基于向量量操作來(lái)來(lái)運(yùn)行銀銀行家算算法進(jìn)程死鎖鎖53多種資源源銀行家家算法處理步驟驟Step1:檢檢查“仍仍需資源源矩陣”中的每每一行,判斷是是否存在在一行,其所需需資源總總數(shù)小于于向量A(剩余余資源總總數(shù)),失敗則則系統(tǒng)死死鎖。Step2:如如存在此此行,則則將所有有資源分分配給該該行對(duì)應(yīng)應(yīng)向量,并將其其狀態(tài)標(biāo)標(biāo)識(shí)為結(jié)結(jié)束。Step3:重重復(fù)12步,直至所所有進(jìn)程程狀態(tài)為為結(jié)束。如果所有有進(jìn)程狀狀態(tài)均可可標(biāo)為結(jié)結(jié)束,則則狀態(tài)安安全,否否則會(huì)發(fā)發(fā)生死鎖鎖。進(jìn)程死鎖鎖54舉例:歷歷史考研研題舉例例北大1997年年OS考考研試題題系統(tǒng)中有有三種資資源(A,B,C)和

34、和5個(gè)進(jìn)進(jìn)程P1P5資源總數(shù)數(shù)為(17,5,20),T0時(shí)刻刻系統(tǒng)狀狀態(tài)如表表所示,系統(tǒng)采采用銀行行家算法法實(shí)施死死鎖避免免策略進(jìn)程死鎖鎖最大資源需求量已分配資源量ABCABCP1559212P2536402P34011405P4425204P542431455舉例:歷歷史考研研題舉例例北大1997年年OS考考研試題題請(qǐng)解答以以下問(wèn)題題:(1)T0時(shí)刻刻是否為為安全狀狀態(tài)?若若是則給給出安全全序列(2)在在T0時(shí)時(shí)刻P2請(qǐng)求資資源(0,3,4),是否能能夠?qū)嵤┦┵Y源分分配,為為什么?(3)在在(2)的基礎(chǔ)礎(chǔ)上,若若P4請(qǐng)請(qǐng)求資源源(2,0,1),是是否能夠夠?qū)嵤┓址峙?,為為什么??)在在(3

35、)的基礎(chǔ)礎(chǔ)上,若若P1請(qǐng)請(qǐng)求資源源(0,2,0),是是否能夠夠?qū)嵤┓址峙?,為為什么?進(jìn)程死鎖鎖56內(nèi)容提要要I/O設(shè)設(shè)備管理理概述I/O硬硬件原理理與軟件件原理進(jìn)程死鎖鎖I/O設(shè)設(shè)備管理理實(shí)例剖剖析內(nèi)容提要要57Minix中的的I/O設(shè)備管管理設(shè)備驅(qū)動(dòng)動(dòng)方式(與Unix的的本質(zhì)區(qū)區(qū)別,與與Linux類類似方式式)每一類設(shè)設(shè)備均有有單獨(dú)的的設(shè)備驅(qū)驅(qū)動(dòng)程序序,其中中硬件無(wú)無(wú)關(guān)的內(nèi)內(nèi)容形成成公共程程序、硬硬件相關(guān)關(guān)的內(nèi)容容作為特特定驅(qū)動(dòng)動(dòng)。以模模塊化組組織提高高系統(tǒng)靈靈活性采用進(jìn)程程間通信信的方式式完成I/O設(shè)設(shè)備的使使用(Minix的進(jìn)進(jìn)程式組組織結(jié)構(gòu)構(gòu))Unix采用過(guò)過(guò)程調(diào)用用的方式式,用戶戶進(jìn)

36、程調(diào)調(diào)用驅(qū)動(dòng)動(dòng)程序,引發(fā)操操作系統(tǒng)統(tǒng)陷入,完成I/O操操作后由由中斷處處理程序序喚醒用用戶進(jìn)程程設(shè)備管理理方法設(shè)備驅(qū)動(dòng)動(dòng)程序作作為獨(dú)立立進(jìn)程存存在,OS啟動(dòng)動(dòng)時(shí)各個(gè)個(gè)設(shè)備驅(qū)驅(qū)動(dòng)進(jìn)程程完成基基本初始始化,而而后等待待消息(阻塞),直到到用戶進(jìn)進(jìn)程發(fā)送送消息(使用I/O設(shè)設(shè)備)將將其喚醒醒與硬件相相關(guān)的設(shè)設(shè)備驅(qū)動(dòng)動(dòng)部分作作為過(guò)程程被設(shè)備備驅(qū)動(dòng)程程序調(diào)用用,從而而實(shí)現(xiàn)無(wú)無(wú)關(guān)性封封裝I/O軟軟件與死死鎖處理理Minix將所所有與設(shè)設(shè)備無(wú)關(guān)關(guān)的I/O軟件件封裝在在文件系系統(tǒng)模塊塊中,所所有的塊塊設(shè)備均均作為一一種特殊殊的文件件用戶空間間的I/O軟件件主要是是供用戶戶程序調(diào)調(diào)用的函函數(shù)庫(kù)Minix中對(duì)對(duì)死

37、鎖的的處理采采用“鴕鴕鳥算法法”I/O管理實(shí)例例58進(jìn)程式OS與整整體式OSI/O管理實(shí)例例59Windows中的I/O設(shè)設(shè)備管理理I/O管管理系統(tǒng)統(tǒng)結(jié)構(gòu)I/O管管理系統(tǒng)統(tǒng)是一個(gè)個(gè)獨(dú)立的的系統(tǒng)組組件,存存在于NTOSKRNL.exe文文件中I/O管管理系統(tǒng)統(tǒng)由多個(gè)個(gè)執(zhí)行體體組件和和設(shè)備驅(qū)驅(qū)動(dòng)程序序組成,負(fù)責(zé)接接受I/O請(qǐng)求求,并針針對(duì)性的的將設(shè)備備請(qǐng)求傳傳送到各各類對(duì)應(yīng)應(yīng)的設(shè)備備Windows中將所所有的I/O操操作均看看作對(duì)虛虛擬文件件的操作作,所有有的I/O數(shù)據(jù)據(jù)傳輸都都被看作作“流數(shù)數(shù)據(jù)”,由I/O管理理系統(tǒng)負(fù)負(fù)責(zé)將虛虛擬文件件映射到到對(duì)應(yīng)的的物理設(shè)設(shè)備上I/O管管理系統(tǒng)統(tǒng)組成I/O管管

38、理器:負(fù)責(zé)定定義支撐撐設(shè)備驅(qū)驅(qū)動(dòng)程序序的基本本架構(gòu),直接響響應(yīng)I/O請(qǐng)求求設(shè)備驅(qū)動(dòng)動(dòng)程序:負(fù)責(zé)定定義并實(shí)實(shí)現(xiàn)某一一特定類類型設(shè)備備的I/O接口口管理PnP管管理器:與I/O管理理器和總總線驅(qū)動(dòng)動(dòng)程序協(xié)協(xié)同,檢檢測(cè)硬件件資源的的分配、設(shè)備的的變更電源管理理器:與與I/O管理器器協(xié)同工工作來(lái)檢檢測(cè)整個(gè)個(gè)系統(tǒng)和和單個(gè)設(shè)設(shè)備,完完成電源源狀態(tài)轉(zhuǎn)轉(zhuǎn)換WDMWMI:WDM的WMI支支持例程程,負(fù)責(zé)責(zé)實(shí)現(xiàn)設(shè)設(shè)備與WMI服服務(wù)之間間的通信信注冊(cè)表:作為一一個(gè)數(shù)據(jù)據(jù)庫(kù),存存儲(chǔ)基本本硬件描描述信息息以及驅(qū)驅(qū)動(dòng)程序序的初始始化和配配置信息息硬件抽象象層:將將設(shè)備驅(qū)驅(qū)動(dòng)程序序?qū)崿F(xiàn)為為二進(jìn)制制可移植植的形式式,實(shí)現(xiàn)現(xiàn)對(duì)

39、硬件件平臺(tái)的的獨(dú)立Windows中的I/O系系統(tǒng)數(shù)據(jù)據(jù)結(jié)構(gòu)文件對(duì)象象、驅(qū)動(dòng)動(dòng)程序?qū)?duì)象、設(shè)設(shè)備對(duì)象象、I/O請(qǐng)求求包I/O管理實(shí)例例60Windows中I/O系統(tǒng)統(tǒng)組件I/O管理實(shí)例例61Windows中的I/O數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)文件對(duì)象象所有I/O設(shè)備備被看作作文件對(duì)對(duì)象,用用戶程序序進(jìn)行I/O操操作時(shí)就就像是對(duì)對(duì)一個(gè)文文件進(jìn)行行操作文件對(duì)象象是可共共享的、有設(shè)備備無(wú)關(guān)命命名的、受保護(hù)護(hù)的、支支持同步步的結(jié)構(gòu)構(gòu)調(diào)用與實(shí)實(shí)現(xiàn)過(guò)程程:C庫(kù)庫(kù)函數(shù)Win32 DLLNTDLL.DLLNTOSKRNL.DLL驅(qū)動(dòng)程序序?qū)ο笈c與設(shè)備對(duì)對(duì)象驅(qū)動(dòng)程序序?qū)ο蟠硪粋€(gè)個(gè)獨(dú)立的的驅(qū)動(dòng)程程序,I/O管管理器從從驅(qū)動(dòng)程程

40、序?qū)ο笙笾蝎@得得并且為為I/O記錄每每個(gè)驅(qū)動(dòng)動(dòng)程序的的入口點(diǎn)點(diǎn)設(shè)備對(duì)象象在OS中代表表一個(gè)物物理/邏邏輯/虛虛擬的設(shè)設(shè)備,并并描述設(shè)設(shè)備的基基本特征征當(dāng)驅(qū)動(dòng)程程序被加加載時(shí),I/O管理器器將創(chuàng)建建一個(gè)驅(qū)驅(qū)動(dòng)程序序?qū)ο?,然后調(diào)調(diào)用驅(qū)動(dòng)動(dòng)程序的的初始化化例程,初始化化例程將將創(chuàng)建一一個(gè)設(shè)備備對(duì)象。設(shè)備對(duì)對(duì)象接受受I/O操作請(qǐng)請(qǐng)求,驅(qū)驅(qū)動(dòng)程序序?qū)ο髮?shí)實(shí)現(xiàn)I/O操作作請(qǐng)求I/O請(qǐng)請(qǐng)求包由固定部部分(標(biāo)標(biāo)題)和和堆棧單單元(數(shù)數(shù)量不定定)組成成,包含含了I/O請(qǐng)求求的各類類信息IRP由由I/O管理器器構(gòu)造,保存了了I/O請(qǐng)求的的相關(guān)信信息,同同時(shí)保存存了調(diào)用用者的相相關(guān)信息息所有的IRP均均保存在在IR

41、P隊(duì)列中中,當(dāng)用用戶程序序終止后后,I/O系統(tǒng)統(tǒng)將清除除未完成成的IRPI/O管理實(shí)例例62I/O請(qǐng)請(qǐng)求涉及及到的數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)I/O管理實(shí)例例63Windows中設(shè)備備驅(qū)動(dòng)程程序?qū)哟未蜪/O管理實(shí)例例64設(shè)備驅(qū)動(dòng)動(dòng)程序的的內(nèi)容組組成I/O管理實(shí)例例65Windows中的I/O處處理簡(jiǎn)述述設(shè)備驅(qū)動(dòng)動(dòng)程序的的同步操操作驅(qū)動(dòng)程序序在訪問(wèn)問(wèn)相關(guān)數(shù)數(shù)據(jù)時(shí),必須實(shí)實(shí)現(xiàn)“同同步”操操作,即即以互斥斥的形式式保護(hù)各各類共享享數(shù)據(jù)。在單CPU的的機(jī)器上上,通過(guò)過(guò)同步例例程實(shí)現(xiàn)現(xiàn);在多多CPU的機(jī)器器上,通通過(guò)“自自旋鎖”實(shí)現(xiàn)I/O處處理的類類型同步I/O和異異步I/O:絕絕大部分分I/O操作是是以同步步方式實(shí)實(shí)

42、現(xiàn)的。但是也也可以通通過(guò)設(shè)定定CreatFile的參數(shù)數(shù)來(lái)使用用異步I/O,異步I/O要要求用戶戶程序在在設(shè)計(jì)和和實(shí)現(xiàn)時(shí)時(shí)必須保保證不訪訪問(wèn)來(lái)自自I/O操作的的數(shù)據(jù)。在異步步方式下下,用戶戶程序通通過(guò)等待待同步對(duì)對(duì)象來(lái)實(shí)實(shí)現(xiàn)與異異步I/O操作作的“同同步”快速I/O:允允許I/O系統(tǒng)統(tǒng)不產(chǎn)生生IRP而直接接使用驅(qū)驅(qū)動(dòng)程序序執(zhí)行I/O請(qǐng)請(qǐng)求映射文件件I/O和文件件高速緩緩存映射文件件I/O是將磁磁盤中的的MappingFile作為進(jìn)進(jìn)程的虛虛擬內(nèi)存存一部分分,直接接把文件件作為大大的數(shù)組組進(jìn)行訪訪問(wèn)Windows利用Mapping File可可實(shí)現(xiàn)文文件高速速緩存和和映象活活動(dòng)分散/集集中式I/O:運(yùn)行用用戶程序序從虛擬擬內(nèi)存的的多個(gè)緩緩沖區(qū)(映射文文件)中中讀寫數(shù)數(shù)據(jù)到磁磁盤文件件(非高高速緩存存打開)的一個(gè)個(gè)連續(xù)區(qū)區(qū)域中。I/O管理實(shí)例例66盤設(shè)備的的管理描描述盤的硬件件組成及及相關(guān)原原理磁盤:軟軟盤和硬硬盤,基基于電磁磁原理存存儲(chǔ)數(shù)據(jù)據(jù),盤面面附著可可磁化金金屬氧化化物,磁磁頭旋轉(zhuǎn)轉(zhuǎn)保持角角速度一一致即可可只讀光盤盤:CD-ROM,基基于光學(xué)學(xué)原理,利用凹凹痕與槽槽脊的過(guò)過(guò)渡來(lái)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論