




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Windows-設(shè)備管理Windows-設(shè)備管理WindowsI/O系統(tǒng)
WindowsI/O系統(tǒng)由若干執(zhí)行體組件與設(shè)備驅(qū)動程序構(gòu)成,聯(lián)合起來管理硬件設(shè)備,并向應(yīng)用程序和系統(tǒng)提供接口以操縱硬件設(shè)備。WindowsI/O系統(tǒng)的設(shè)計目標是為應(yīng)用程序提供一個有關(guān)設(shè)備的抽象,包括硬件(物理)設(shè)備和軟件(虛擬或邏輯)設(shè)備。
WindowsI/O系統(tǒng) WindowsI/O系統(tǒng)由若 I/O管理器I/O管理器是I/O系統(tǒng)的核心;它將應(yīng)用程序和系統(tǒng)組件與虛擬的、邏輯的和物理的設(shè)備連接起來,并定義了基礎(chǔ)設(shè)施來支持設(shè)備驅(qū)動程序。設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序通常為某一種特定類型的設(shè)備提供I/O接口;設(shè)備驅(qū)動程序接收來自I/O管理器傳送來的命令,完成這些命令,然后通知I/O管理器;設(shè)備驅(qū)動程序通常使用I/O管理器來向其他的共享統(tǒng)一設(shè)備接口的設(shè)備驅(qū)動程序轉(zhuǎn)送I/O命令。windows操作系統(tǒng)之設(shè)備管理解析課件PnP管理器PnP管理器與I/O管理器及總線驅(qū)動程序(busdriver)一起工作,以指導硬件資源的分配,檢測并響應(yīng)硬件設(shè)備的加入和移除。PnP管理器和總線驅(qū)動程序負責在檢測到一個設(shè)備時,加載該設(shè)備的驅(qū)動程序。當一個設(shè)備被加入到缺乏正確設(shè)備驅(qū)動程序的系統(tǒng)中時,執(zhí)行體PnP管理器將請求用戶模式PnP管理器的設(shè)備安裝服務(wù)。windows操作系統(tǒng)之設(shè)備管理解析課件電源管理器電源管理器與I/O管理器一起工作,以指導系統(tǒng)和各個單獨的設(shè)備驅(qū)動程序能夠經(jīng)歷電源狀態(tài)的轉(zhuǎn)變。系統(tǒng)電源狀態(tài)描述整體系統(tǒng)的能源消耗,包括系統(tǒng)工作狀態(tài)、系統(tǒng)休眠狀態(tài)及系統(tǒng)關(guān)機狀態(tài)等。硬件抽象層HALHAL提供一組API,將不同平臺之間的差異隱藏起來,從而使驅(qū)動程序與處理器和中斷控制器的特殊性相互隔離開。windows操作系統(tǒng)之設(shè)備管理解析課件一組Windows管理規(guī)范(WMI)支持例程即Windows驅(qū)動程序模型(WDM)WMI提供者,主要用于系統(tǒng)管理和監(jiān)視。設(shè)備驅(qū)動程序可以使用WDMWMI提供者作為中間媒介與用戶模式的WMI服務(wù)進行通信。 同時需要注意的是:Windows操作系統(tǒng)是分 態(tài)的操作系統(tǒng),用戶應(yīng)用程序運行在用戶 態(tài),操作系統(tǒng)代碼(如系統(tǒng)服務(wù)和設(shè)備驅(qū)動 程序)在核心態(tài)下運行。windows操作系統(tǒng)之設(shè)備管理解析課件
用戶態(tài)程序只能調(diào)用Windows子系統(tǒng)提供的API來同設(shè)備交互,當請求傳遞到I/O管理器時,它進行必要的參數(shù)匹配和操作安全性檢查,然后由這個請求構(gòu)造出合適的I/O請求包(IRP),并把此IRP傳遞到適當?shù)尿?qū)動程序去,并給應(yīng)用程序一個消息,通知這次I/O操作還沒完成。 驅(qū)動程序一般是通過硬件抽象層來和硬件交互,從而完 成I/O請求工作。 驅(qū)動程序完成I/O操作后,它將調(diào)用一個特殊的內(nèi)核服務(wù) 例程來完成IRP。這時,I/O管理器把數(shù)據(jù)和結(jié)果返回給 Windows和用戶應(yīng)用程序。
I/O控制方式
程序I/O方式
中斷驅(qū)動I/O控制方式
DMAI/O控制方式
I/O通道控制方式 I/O控制方式程序I/O方式向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲器中寫字
傳送完成?下一條指令完成CPU→I/OI/O→CPUI/O→CPU出錯CPU→內(nèi)存未完未就緒就緒程序I/O方式向I/O控制器發(fā)讀命令讀I/O控制器的狀中斷驅(qū)動I/O控制方式向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲器中寫字
傳送完成?下一條指令完成﹍﹍CPU→I/OI/O→CPUI/O→CPU出錯CPU→內(nèi)存未完就緒CPU做其它事﹍﹍中斷中斷驅(qū)動I/O控制方式向I/O控制器發(fā)讀命令讀I/O控DMA控制方式設(shè)置MAR和DC初值啟動DMA傳送命令挪用存儲器周期傳送數(shù)據(jù)字存儲器地址增1字計數(shù)寄存器減1DC=0?請求中斷在繼續(xù)執(zhí)行用戶程序的同時,準備又一次傳送否是DMA控制方式設(shè)置MAR和DC初值啟動DMA傳送命令挪用存儲I/O通道控制方式
簡介:I/O通道方式是DMA方式的發(fā)展,可進一步減少 CPU的干預,把對一個數(shù)據(jù)塊的讀(或?qū)懀閱挝坏母?預減少為對一組數(shù)據(jù)塊的讀(或?qū)懀┘坝嘘P(guān)的控制和管 理為單位的干預。通道時負責外圍設(shè)備與主存之間進行 數(shù)據(jù)交換、能單獨完成輸入輸出操作的處理機。它控制 設(shè)備與內(nèi)存直接進行數(shù)據(jù)交換,它有自己的通道指令, 這些通道指令的運行由CPU啟動,并在操作結(jié)束時向CPU 發(fā)出中斷信號。 通道程序由一系列通道指令所構(gòu)成,通道指令的每條指 令中包含如下信息:①操作碼;②內(nèi)存地址;③計數(shù); ④通道程序結(jié)束位P;⑤記錄結(jié)束標志R。I/O通道控制方式
工作流程:CPU向I/O通道發(fā)送一條I/O指令,以給出 其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備, 通道程序接到該指令后,通過執(zhí)行通道程序便可完成 CPU指定的I/O任務(wù)。
I/O通道控制方式的優(yōu)點:實現(xiàn)CPU、通道和I/O設(shè)備 三者的并行操作,執(zhí)行一個通道程序可以完成幾批 I/O操作,更有效地提高整個系統(tǒng)的資源利用率。
緩沖管理 緩沖技術(shù):1.發(fā)送請求發(fā)出一段時間后才執(zhí)行輸出傳送;
2.輸入請求發(fā)出之前就執(zhí)行輸入傳送。
緩沖的引入的作用:
1.緩和CPU與I/O設(shè)備間速度不匹配的矛盾。
2.減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的 限制
3.提高CPU和I/O設(shè)備之間的并行性。
0.1ms0.8ms0.8ms緩沖管理 緩沖技術(shù):1.發(fā)送請求發(fā)出一段時間后才執(zhí)單緩沖(SingleBuffer)Max(C,T)+M雙緩沖(DoubleBuffer)Max(C,T)單緩沖(SingleBuffer)Max(C,T)+M雙緩15雙機通信時緩沖區(qū)的設(shè)置循環(huán)緩沖雙機通信時緩沖區(qū)的設(shè)置循環(huán)緩沖公用緩沖池(BufferPool) 緩沖池的組成:對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū): ①空(閑)緩沖區(qū); ②裝滿輸入數(shù)據(jù)的緩沖區(qū); ③裝滿輸出數(shù)據(jù)的緩沖區(qū)。
為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個 隊列,于是可形成以下三個隊列: (1)空緩沖隊列emq。 (2)輸入隊列inq。 (3)輸出隊列outq。公用緩沖池(BufferPool) 緩沖池的組成:對于既可 Getbuf過程和Putbuf過程
ProcedureGetbuf(type) begin Wait(RS(type)); Wait(MS(type)); B(number)∶=Takebuf(type); Signal(MS(type)); end
ProcedurePutbuf(type,number) begin Wait(MS(type)); Addbuf(type,number); Signal(MS(type)); Signal(RS(type)); end Getbuf過程和Putbuf過程緩沖區(qū)的工作方式緩沖區(qū)的工作方式I/O軟件的設(shè)計目標 I/O軟件的總目標:高效率:確保I/O設(shè)備與CPU的并發(fā)性。通用性:提供簡單抽象清晰和統(tǒng)一的接口。 I/O軟件的具體目標:與具體設(shè)備無關(guān)統(tǒng)一命名:不同的OS命名規(guī)則不一樣。錯誤處理:越底層處理越好緩沖技術(shù)設(shè)備的分配和釋放I/O控制方式I/O軟件的設(shè)計目標 I/O軟件的總目標:I/O軟件的層次結(jié)構(gòu)I/O軟件的層次結(jié)構(gòu)中斷處理程序 中斷程序的功能:
進程上下文的切換、中斷源的測試、讀取設(shè)備狀態(tài)和 修改進程狀態(tài)。 中斷程序的過程:喚醒被阻塞的驅(qū)動程序保護中斷進程的CPU環(huán)境轉(zhuǎn)入響應(yīng)的設(shè)備處理程序中斷處理恢復被中斷的進程現(xiàn)場中斷處理程序 中斷程序的功能:中斷現(xiàn)場保護示意圖中斷現(xiàn)場保護示意圖23中斷處理流程圖中斷處理流程圖24設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序的功能: (1)接收由I/O進程發(fā)來的命令和參數(shù),并將命令中的抽 象要求轉(zhuǎn)換為具體要求 (2)檢查用戶I/O請求的合法性,了解I/O設(shè)備的狀態(tài),傳 遞有關(guān)參 數(shù),設(shè)置設(shè)備的工作方式。 (3)發(fā)出I/O命令,如果設(shè)備空閑,便立即啟動I/O設(shè)備去 完成指定 的I/O操作;如果設(shè)備處于忙碌狀態(tài),則將請 求者的請求塊掛 在設(shè)備隊列上等待。 (4)及時響應(yīng)由控制器或通道發(fā)來的中斷請求并進行處 理。 (5)對于設(shè)置有通道的計算機系統(tǒng),驅(qū)動程序還應(yīng)能夠根 據(jù)用戶的I/O請求,自動地構(gòu)成通道程序。
設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序的功能:設(shè)備驅(qū)動程序的特點
(1)驅(qū)動程序主要是指在請求I/O的進程與設(shè)備控制器之間的 一個通信和轉(zhuǎn)換程序。 (2)驅(qū)動程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān) ,因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動程序。
(3)驅(qū)動程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。
(4)由于驅(qū)動程序與硬件緊密相關(guān),因而其中的一部分必 須用匯編語言書寫。設(shè)備驅(qū)動程序的特點
設(shè)備驅(qū)動程序的處理過程 1.將抽象要求轉(zhuǎn)換為具體要求 2.檢查I/O請求的合法性 3.讀出和檢查設(shè)備的狀態(tài) 4.傳送必要的參數(shù) 5.工作方式的設(shè)置 6.啟動I/O設(shè)備
設(shè)備驅(qū)動程序的處理過程 1.將抽象要求轉(zhuǎn)換為具體要Windows驅(qū)動程序模型重新定義了驅(qū)動程序分層:FDOFIDOPDOFIDO上層過濾層驅(qū)動程序IRP功能驅(qū)動程序下層過濾層驅(qū)動程序總線驅(qū)動程序。。。。。。。。。。。。WDM驅(qū)動程序?qū)哟谓Y(jié)構(gòu)Windows驅(qū)動程序模型重新定義了驅(qū)動程序分層:FDOFI
該層次結(jié)構(gòu)左邊是一個設(shè)備對象堆棧。設(shè)備對象是系統(tǒng) 為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。一個物理硬件 可以有多個這樣的數(shù)據(jù)結(jié)構(gòu)。 處于堆棧最底層的設(shè)備對象稱為物理設(shè)備對象 PDO(PhysicalDeviceObject),,代表了設(shè)備與總線之 間的連接。 在設(shè)備對象堆棧中間的對象稱為功能設(shè)備對象 FDO(FunctionalDeviceObject),代表了設(shè)備的功能。 在FDO的上面或下面還會有一些過濾器設(shè)備對象 FIDO(FilterDeviceObject)。windows操作系統(tǒng)之設(shè)備管理解析課件 總線驅(qū)動程序負責枚舉它的總線,這意味著:發(fā)現(xiàn)總 線上的全部設(shè)備和檢測設(shè)備何時被添加或修改,并為 每一個設(shè)備創(chuàng)建一個PDO。 功能驅(qū)動程序知道如何控制設(shè)備的主要功能,它分層 在總線驅(qū)動程序的上面。功能驅(qū)動程序創(chuàng)建一個功能 設(shè)備對象,放在設(shè)備棧中。 對總線上的所有設(shè)備,總線過濾驅(qū)動程序被加在總線 驅(qū)動程序之上;設(shè)備過濾驅(qū)動程序僅對特定的設(shè)備添 加。上層的過濾驅(qū)動程序在功能驅(qū)動程序之上,下層 過濾驅(qū)動程序在功能驅(qū)動程序之下。這種層次結(jié)構(gòu)可 以使I/O請求過程更加明了。windows操作系統(tǒng)之設(shè)備管理解析課件 I/O管理器發(fā)送的IRP,先被送到設(shè)備堆棧的上層過濾 器驅(qū)動程序(FIDO),它可以根據(jù)要求決定IRP的處理方 式,是沿著設(shè)備棧繼續(xù)向下傳,或者做另外的處理。 每一層程序都可以決定如何處理IRP。 高層的驅(qū)動程序可以把請求劃分成更簡單的請求并傳 遞給下層驅(qū)動程序。 中間層次的驅(qū)動程序進一步處理請求,將一個IRP中 的請求劃分為若干個小的請求,并傳給下層驅(qū)動程序 。最后,最底層的驅(qū)動程序與硬件打交道。 我們應(yīng)該知道,一些IRP在到達總線程序之前,在設(shè) 備傳遞過程中可能就被過濾掉了。windows操作系統(tǒng)之設(shè)備管理解析課件設(shè)備獨立性軟件 執(zhí)行所有設(shè)備的公有操作:
①對獨立設(shè)備的分配與回收; ②將邏輯設(shè)備名映射為物理設(shè)備名,進一步可以找到 相應(yīng)物理設(shè)備的驅(qū)動程序; ③對設(shè)備進行保護,禁止用戶直接訪問設(shè)備; ④緩沖管理,即對字符設(shè)備和塊設(shè)備的緩沖區(qū)進行有 效的管理,以提高I/O的效率; ⑤差錯控制。由于在I/O操作中的絕大多數(shù)錯 誤都與設(shè)備無關(guān),故主要由設(shè)備驅(qū)動程序處理,而設(shè) 備獨立性軟件處理 那些設(shè)備驅(qū)動程序無法處理的錯 誤。設(shè)備獨立性軟件 執(zhí)行所有設(shè)備的公有操作:
向用戶層(或文件層)軟件提供統(tǒng)一接口,無論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同的。例如,對各種設(shè)備的讀操作,在應(yīng)用程序中都使用read;而對各種設(shè)備的寫操作,也都使用write。邏輯設(shè)備表2)LUT的設(shè)置問題 邏輯設(shè)備表設(shè)備分配 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DCT設(shè)備分配 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DC控制器控制表、通道控制表和系統(tǒng)設(shè)備表控制器表、通道表、系統(tǒng)設(shè)備表控制器控制表、通道控制表和系統(tǒng)設(shè)備表控制器表、通道表、系統(tǒng)35 設(shè)備分配時應(yīng)考慮的因素獨享設(shè)備:只能分配給一個用戶或者進程使用。
(2)共享設(shè)備:可分配給多個用戶或者多個進程使用。
(3)虛擬設(shè)備:可分配給多個用戶或者多個進程使用, 但需要在實際的物理設(shè)備上排序。 設(shè)備的固有屬性 設(shè)備分配時應(yīng)考慮的因素獨享設(shè)備:只能分配給一個用戶獨占設(shè)備的分配程序分配設(shè)備 2)分配控制器 3)分配通道 存在的問題: 1)進程以物理設(shè)備請求資源 2)單通道型,造成瓶頸 基本的設(shè)備分配程序:以有I/O通道的系統(tǒng)為例獨占設(shè)備的分配程序分配設(shè)備 基本的設(shè)備分配程序:以有I/設(shè)備分配程序的改進
增加設(shè)備的獨立性:進程采用邏輯名請求I/O。這樣,可以從SDT(系統(tǒng)設(shè)備表)中輪詢合適的同類設(shè)備。
2)考慮多通路情況:對通道和控制器采用輪詢的方式查找合適的設(shè)備。設(shè)備分配程序的改進增加設(shè)備的獨立性:進程采用邏輯名請求I/磁盤調(diào)度
磁盤是一種共享設(shè)備,當有多個進程共同請求磁盤時,需要采用合理 的磁盤調(diào)度方法,保證各個進程對磁盤的平均 訪問時間(尋 道時間)最少。即磁盤調(diào)度的目標是使磁盤的平均尋道時間最少。
下面介紹幾種目前常用的磁盤調(diào)度算法:
先來先服務(wù)(FCFS,FirstComeFirstServerd)
它根據(jù)進程請求訪問磁盤的先后次序進行調(diào)度。此算法優(yōu)點是公平、 簡單,且每個進程的請求都能依次地得到處理,不會出現(xiàn)某一進程 的請求長期得不到滿足的情況。但此算法由于未對尋道進行優(yōu)化, 致使平均尋道時間可能較長。故FCFS算法僅適用于請求磁盤I/O的進 程數(shù)目較少的場合。
最短尋道時間優(yōu)先(SSTF,ShortestSeekTimeFirst)
其要求訪問的磁道與當前磁頭所在的磁道距離最近,以使每次的尋 道時間最短。但這種算法不能保證平均尋道時間最短。
磁盤調(diào)度 磁盤是一種共享設(shè)備,當有多個進程共同請求磁
掃描(SCAN)算法
SCAN算法既能獲得較好的尋道性能,又能防止“饑餓”現(xiàn) 象,故被廣泛用于大、中、小型機器和網(wǎng)絡(luò)中的磁盤調(diào) 度。該算法不僅考慮到欲訪問的磁道與當前磁道間的距 離,更優(yōu)先考慮的是磁頭當前的移動方向。磁頭逐步從 外(里)向里(外)移動,直至再無更里面(外面)的 磁道要訪問,從而避免了出現(xiàn)“饑餓”現(xiàn)象。
循環(huán)掃描(CSCAN)算法
SCAN存在這樣的問題:當磁頭剛從里向外移動而越過 了某一磁道時,恰好又有一進程請求訪問此磁道,這 時,該進程必須等待,待磁頭繼續(xù)從里向外,然后再從 外向里掃描完所有要訪問的磁道后,才處理該進程的請 求,致使該進程的請求被大大地推遲。為了減少這種延 遲,CSCAN算法規(guī)定磁頭單向移動。 掃描(SCAN)算法
磁頭從最外面被訪問的磁道直接移到最里面欲訪問的 磁道(或相反)的尋道時間。
NStepSCAN算法: N步SCAN算法是將磁盤請求隊列分成若干個長度為N的子隊列,磁盤調(diào)度將按FCFS算法依次處理這些子隊列。而每處理一個隊列時又是按SCAN算法,對一個隊列處理完后,再處理其他隊列。當正在處理某子隊列時,如果又出現(xiàn)新的磁盤I/O請求,便將新請求進程放入其他隊列,這樣就可避免出現(xiàn)粘著現(xiàn)象。
FSCAN算法:
一個是由當前所有請求磁盤I/O的進程形成的隊列,由磁盤調(diào)度按SCAN算法進行處理。在掃描期間,將新出現(xiàn)的所有請求磁盤I/O的進程,放入另一個等待處理的請求隊列。這樣,所有的新請求都將被推遲到下一次掃描時處理。 NStepSCAN算法:FCFSSSTFSCANCSCANFCFSSSTFSCANCSCAN磁盤高速緩存
磁盤高速緩存,并非通常意義下的內(nèi)存和CPU之間所增 設(shè)的一個小容量高速存儲器,而是指利用內(nèi)存中的存儲 空間來暫存從磁盤中讀出的一系列盤塊中的信息。因 此,高速緩存是一組在邏輯上屬于磁盤,而物理上是駐 留在內(nèi)存中的盤塊。
磁盤高速緩存的形式:在內(nèi)存中開辟一個單獨的存儲空間來作為磁盤高速緩存,其大小是固定的,不會受應(yīng)用程序多少的影響;把所有未利用的內(nèi)存空間變?yōu)橐粋€緩沖池,供請求分頁系統(tǒng)和磁盤I/O時(作為磁盤高速緩存)共享。磁盤高速緩存
磁盤高速緩存,并非通常意義下的內(nèi)存和系統(tǒng)將數(shù)據(jù)交付給請求進程的方式:數(shù)據(jù)交付:直接將高速緩存中的數(shù)據(jù),傳送到請求者進程的內(nèi)存工作區(qū)中。指針交付:只將指向高速緩存中某區(qū)域的指針交付給請求者進程。該方式由于所傳送的數(shù)據(jù)量少,節(jié)省了數(shù)據(jù)從磁盤高速緩存到進程的內(nèi)存工作區(qū)的時間。
磁盤高速緩存置換算法:最近最久未使用算法LRU最近未使用算法NRU最少使用算法LFU系統(tǒng)將數(shù)據(jù)交付給請求進程的方式:置換算法的考慮因素:訪問頻率
高速緩存的訪問頻率遠遠低于存儲器的訪問頻率??深A見性
在高速緩存中的各盤塊數(shù)據(jù),有哪些數(shù)據(jù)可能在較長 時間內(nèi)不會再被訪問,又有哪些數(shù)據(jù)可能很快就再被 訪問,會有相當一部分是可預知的。數(shù)據(jù)的一致性
高速緩存一種易失性的存儲器,一旦系統(tǒng)發(fā)生故障, 存放在高速緩存中的數(shù)據(jù)將會丟失;而其中有些盤塊 (如索引結(jié)點盤塊)中的數(shù)據(jù)已被修改,但尚未拷回磁 盤,因此,當系統(tǒng)發(fā)生故障后,可能會造成數(shù)據(jù)的不 一致性。置換算法的考慮因素:提高磁盤I/O速度的其它方法:
提前讀(Read-ahead)
延遲寫
優(yōu)化物理塊的分布虛擬盤提高磁盤I/O速度的其它方法:windows操作系統(tǒng)之設(shè)備管理解析課件Windows-設(shè)備管理Windows-設(shè)備管理WindowsI/O系統(tǒng)
WindowsI/O系統(tǒng)由若干執(zhí)行體組件與設(shè)備驅(qū)動程序構(gòu)成,聯(lián)合起來管理硬件設(shè)備,并向應(yīng)用程序和系統(tǒng)提供接口以操縱硬件設(shè)備。WindowsI/O系統(tǒng)的設(shè)計目標是為應(yīng)用程序提供一個有關(guān)設(shè)備的抽象,包括硬件(物理)設(shè)備和軟件(虛擬或邏輯)設(shè)備。
WindowsI/O系統(tǒng) WindowsI/O系統(tǒng)由若 I/O管理器I/O管理器是I/O系統(tǒng)的核心;它將應(yīng)用程序和系統(tǒng)組件與虛擬的、邏輯的和物理的設(shè)備連接起來,并定義了基礎(chǔ)設(shè)施來支持設(shè)備驅(qū)動程序。設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序通常為某一種特定類型的設(shè)備提供I/O接口;設(shè)備驅(qū)動程序接收來自I/O管理器傳送來的命令,完成這些命令,然后通知I/O管理器;設(shè)備驅(qū)動程序通常使用I/O管理器來向其他的共享統(tǒng)一設(shè)備接口的設(shè)備驅(qū)動程序轉(zhuǎn)送I/O命令。windows操作系統(tǒng)之設(shè)備管理解析課件PnP管理器PnP管理器與I/O管理器及總線驅(qū)動程序(busdriver)一起工作,以指導硬件資源的分配,檢測并響應(yīng)硬件設(shè)備的加入和移除。PnP管理器和總線驅(qū)動程序負責在檢測到一個設(shè)備時,加載該設(shè)備的驅(qū)動程序。當一個設(shè)備被加入到缺乏正確設(shè)備驅(qū)動程序的系統(tǒng)中時,執(zhí)行體PnP管理器將請求用戶模式PnP管理器的設(shè)備安裝服務(wù)。windows操作系統(tǒng)之設(shè)備管理解析課件電源管理器電源管理器與I/O管理器一起工作,以指導系統(tǒng)和各個單獨的設(shè)備驅(qū)動程序能夠經(jīng)歷電源狀態(tài)的轉(zhuǎn)變。系統(tǒng)電源狀態(tài)描述整體系統(tǒng)的能源消耗,包括系統(tǒng)工作狀態(tài)、系統(tǒng)休眠狀態(tài)及系統(tǒng)關(guān)機狀態(tài)等。硬件抽象層HALHAL提供一組API,將不同平臺之間的差異隱藏起來,從而使驅(qū)動程序與處理器和中斷控制器的特殊性相互隔離開。windows操作系統(tǒng)之設(shè)備管理解析課件一組Windows管理規(guī)范(WMI)支持例程即Windows驅(qū)動程序模型(WDM)WMI提供者,主要用于系統(tǒng)管理和監(jiān)視。設(shè)備驅(qū)動程序可以使用WDMWMI提供者作為中間媒介與用戶模式的WMI服務(wù)進行通信。 同時需要注意的是:Windows操作系統(tǒng)是分 態(tài)的操作系統(tǒng),用戶應(yīng)用程序運行在用戶 態(tài),操作系統(tǒng)代碼(如系統(tǒng)服務(wù)和設(shè)備驅(qū)動 程序)在核心態(tài)下運行。windows操作系統(tǒng)之設(shè)備管理解析課件
用戶態(tài)程序只能調(diào)用Windows子系統(tǒng)提供的API來同設(shè)備交互,當請求傳遞到I/O管理器時,它進行必要的參數(shù)匹配和操作安全性檢查,然后由這個請求構(gòu)造出合適的I/O請求包(IRP),并把此IRP傳遞到適當?shù)尿?qū)動程序去,并給應(yīng)用程序一個消息,通知這次I/O操作還沒完成。 驅(qū)動程序一般是通過硬件抽象層來和硬件交互,從而完 成I/O請求工作。 驅(qū)動程序完成I/O操作后,它將調(diào)用一個特殊的內(nèi)核服務(wù) 例程來完成IRP。這時,I/O管理器把數(shù)據(jù)和結(jié)果返回給 Windows和用戶應(yīng)用程序。
I/O控制方式
程序I/O方式
中斷驅(qū)動I/O控制方式
DMAI/O控制方式
I/O通道控制方式 I/O控制方式程序I/O方式向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲器中寫字
傳送完成?下一條指令完成CPU→I/OI/O→CPUI/O→CPU出錯CPU→內(nèi)存未完未就緒就緒程序I/O方式向I/O控制器發(fā)讀命令讀I/O控制器的狀中斷驅(qū)動I/O控制方式向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲器中寫字
傳送完成?下一條指令完成﹍﹍CPU→I/OI/O→CPUI/O→CPU出錯CPU→內(nèi)存未完就緒CPU做其它事﹍﹍中斷中斷驅(qū)動I/O控制方式向I/O控制器發(fā)讀命令讀I/O控DMA控制方式設(shè)置MAR和DC初值啟動DMA傳送命令挪用存儲器周期傳送數(shù)據(jù)字存儲器地址增1字計數(shù)寄存器減1DC=0?請求中斷在繼續(xù)執(zhí)行用戶程序的同時,準備又一次傳送否是DMA控制方式設(shè)置MAR和DC初值啟動DMA傳送命令挪用存儲I/O通道控制方式
簡介:I/O通道方式是DMA方式的發(fā)展,可進一步減少 CPU的干預,把對一個數(shù)據(jù)塊的讀(或?qū)懀閱挝坏母?預減少為對一組數(shù)據(jù)塊的讀(或?qū)懀┘坝嘘P(guān)的控制和管 理為單位的干預。通道時負責外圍設(shè)備與主存之間進行 數(shù)據(jù)交換、能單獨完成輸入輸出操作的處理機。它控制 設(shè)備與內(nèi)存直接進行數(shù)據(jù)交換,它有自己的通道指令, 這些通道指令的運行由CPU啟動,并在操作結(jié)束時向CPU 發(fā)出中斷信號。 通道程序由一系列通道指令所構(gòu)成,通道指令的每條指 令中包含如下信息:①操作碼;②內(nèi)存地址;③計數(shù); ④通道程序結(jié)束位P;⑤記錄結(jié)束標志R。I/O通道控制方式
工作流程:CPU向I/O通道發(fā)送一條I/O指令,以給出 其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備, 通道程序接到該指令后,通過執(zhí)行通道程序便可完成 CPU指定的I/O任務(wù)。
I/O通道控制方式的優(yōu)點:實現(xiàn)CPU、通道和I/O設(shè)備 三者的并行操作,執(zhí)行一個通道程序可以完成幾批 I/O操作,更有效地提高整個系統(tǒng)的資源利用率。
緩沖管理 緩沖技術(shù):1.發(fā)送請求發(fā)出一段時間后才執(zhí)行輸出傳送;
2.輸入請求發(fā)出之前就執(zhí)行輸入傳送。
緩沖的引入的作用:
1.緩和CPU與I/O設(shè)備間速度不匹配的矛盾。
2.減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的 限制
3.提高CPU和I/O設(shè)備之間的并行性。
0.1ms0.8ms0.8ms緩沖管理 緩沖技術(shù):1.發(fā)送請求發(fā)出一段時間后才執(zhí)單緩沖(SingleBuffer)Max(C,T)+M雙緩沖(DoubleBuffer)Max(C,T)單緩沖(SingleBuffer)Max(C,T)+M雙緩63雙機通信時緩沖區(qū)的設(shè)置循環(huán)緩沖雙機通信時緩沖區(qū)的設(shè)置循環(huán)緩沖公用緩沖池(BufferPool) 緩沖池的組成:對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū): ①空(閑)緩沖區(qū); ②裝滿輸入數(shù)據(jù)的緩沖區(qū); ③裝滿輸出數(shù)據(jù)的緩沖區(qū)。
為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個 隊列,于是可形成以下三個隊列: (1)空緩沖隊列emq。 (2)輸入隊列inq。 (3)輸出隊列outq。公用緩沖池(BufferPool) 緩沖池的組成:對于既可 Getbuf過程和Putbuf過程
ProcedureGetbuf(type) begin Wait(RS(type)); Wait(MS(type)); B(number)∶=Takebuf(type); Signal(MS(type)); end
ProcedurePutbuf(type,number) begin Wait(MS(type)); Addbuf(type,number); Signal(MS(type)); Signal(RS(type)); end Getbuf過程和Putbuf過程緩沖區(qū)的工作方式緩沖區(qū)的工作方式I/O軟件的設(shè)計目標 I/O軟件的總目標:高效率:確保I/O設(shè)備與CPU的并發(fā)性。通用性:提供簡單抽象清晰和統(tǒng)一的接口。 I/O軟件的具體目標:與具體設(shè)備無關(guān)統(tǒng)一命名:不同的OS命名規(guī)則不一樣。錯誤處理:越底層處理越好緩沖技術(shù)設(shè)備的分配和釋放I/O控制方式I/O軟件的設(shè)計目標 I/O軟件的總目標:I/O軟件的層次結(jié)構(gòu)I/O軟件的層次結(jié)構(gòu)中斷處理程序 中斷程序的功能:
進程上下文的切換、中斷源的測試、讀取設(shè)備狀態(tài)和 修改進程狀態(tài)。 中斷程序的過程:喚醒被阻塞的驅(qū)動程序保護中斷進程的CPU環(huán)境轉(zhuǎn)入響應(yīng)的設(shè)備處理程序中斷處理恢復被中斷的進程現(xiàn)場中斷處理程序 中斷程序的功能:中斷現(xiàn)場保護示意圖中斷現(xiàn)場保護示意圖71中斷處理流程圖中斷處理流程圖72設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序的功能: (1)接收由I/O進程發(fā)來的命令和參數(shù),并將命令中的抽 象要求轉(zhuǎn)換為具體要求 (2)檢查用戶I/O請求的合法性,了解I/O設(shè)備的狀態(tài),傳 遞有關(guān)參 數(shù),設(shè)置設(shè)備的工作方式。 (3)發(fā)出I/O命令,如果設(shè)備空閑,便立即啟動I/O設(shè)備去 完成指定 的I/O操作;如果設(shè)備處于忙碌狀態(tài),則將請 求者的請求塊掛 在設(shè)備隊列上等待。 (4)及時響應(yīng)由控制器或通道發(fā)來的中斷請求并進行處 理。 (5)對于設(shè)置有通道的計算機系統(tǒng),驅(qū)動程序還應(yīng)能夠根 據(jù)用戶的I/O請求,自動地構(gòu)成通道程序。
設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序的功能:設(shè)備驅(qū)動程序的特點
(1)驅(qū)動程序主要是指在請求I/O的進程與設(shè)備控制器之間的 一個通信和轉(zhuǎn)換程序。 (2)驅(qū)動程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān) ,因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動程序。
(3)驅(qū)動程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。
(4)由于驅(qū)動程序與硬件緊密相關(guān),因而其中的一部分必 須用匯編語言書寫。設(shè)備驅(qū)動程序的特點
設(shè)備驅(qū)動程序的處理過程 1.將抽象要求轉(zhuǎn)換為具體要求 2.檢查I/O請求的合法性 3.讀出和檢查設(shè)備的狀態(tài) 4.傳送必要的參數(shù) 5.工作方式的設(shè)置 6.啟動I/O設(shè)備
設(shè)備驅(qū)動程序的處理過程 1.將抽象要求轉(zhuǎn)換為具體要Windows驅(qū)動程序模型重新定義了驅(qū)動程序分層:FDOFIDOPDOFIDO上層過濾層驅(qū)動程序IRP功能驅(qū)動程序下層過濾層驅(qū)動程序總線驅(qū)動程序。。。。。。。。。。。。WDM驅(qū)動程序?qū)哟谓Y(jié)構(gòu)Windows驅(qū)動程序模型重新定義了驅(qū)動程序分層:FDOFI
該層次結(jié)構(gòu)左邊是一個設(shè)備對象堆棧。設(shè)備對象是系統(tǒng) 為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。一個物理硬件 可以有多個這樣的數(shù)據(jù)結(jié)構(gòu)。 處于堆棧最底層的設(shè)備對象稱為物理設(shè)備對象 PDO(PhysicalDeviceObject),,代表了設(shè)備與總線之 間的連接。 在設(shè)備對象堆棧中間的對象稱為功能設(shè)備對象 FDO(FunctionalDeviceObject),代表了設(shè)備的功能。 在FDO的上面或下面還會有一些過濾器設(shè)備對象 FIDO(FilterDeviceObject)。windows操作系統(tǒng)之設(shè)備管理解析課件 總線驅(qū)動程序負責枚舉它的總線,這意味著:發(fā)現(xiàn)總 線上的全部設(shè)備和檢測設(shè)備何時被添加或修改,并為 每一個設(shè)備創(chuàng)建一個PDO。 功能驅(qū)動程序知道如何控制設(shè)備的主要功能,它分層 在總線驅(qū)動程序的上面。功能驅(qū)動程序創(chuàng)建一個功能 設(shè)備對象,放在設(shè)備棧中。 對總線上的所有設(shè)備,總線過濾驅(qū)動程序被加在總線 驅(qū)動程序之上;設(shè)備過濾驅(qū)動程序僅對特定的設(shè)備添 加。上層的過濾驅(qū)動程序在功能驅(qū)動程序之上,下層 過濾驅(qū)動程序在功能驅(qū)動程序之下。這種層次結(jié)構(gòu)可 以使I/O請求過程更加明了。windows操作系統(tǒng)之設(shè)備管理解析課件 I/O管理器發(fā)送的IRP,先被送到設(shè)備堆棧的上層過濾 器驅(qū)動程序(FIDO),它可以根據(jù)要求決定IRP的處理方 式,是沿著設(shè)備棧繼續(xù)向下傳,或者做另外的處理。 每一層程序都可以決定如何處理IRP。 高層的驅(qū)動程序可以把請求劃分成更簡單的請求并傳 遞給下層驅(qū)動程序。 中間層次的驅(qū)動程序進一步處理請求,將一個IRP中 的請求劃分為若干個小的請求,并傳給下層驅(qū)動程序 。最后,最底層的驅(qū)動程序與硬件打交道。 我們應(yīng)該知道,一些IRP在到達總線程序之前,在設(shè) 備傳遞過程中可能就被過濾掉了。windows操作系統(tǒng)之設(shè)備管理解析課件設(shè)備獨立性軟件 執(zhí)行所有設(shè)備的公有操作:
①對獨立設(shè)備的分配與回收; ②將邏輯設(shè)備名映射為物理設(shè)備名,進一步可以找到 相應(yīng)物理設(shè)備的驅(qū)動程序; ③對設(shè)備進行保護,禁止用戶直接訪問設(shè)備; ④緩沖管理,即對字符設(shè)備和塊設(shè)備的緩沖區(qū)進行有 效的管理,以提高I/O的效率; ⑤差錯控制。由于在I/O操作中的絕大多數(shù)錯 誤都與設(shè)備無關(guān),故主要由設(shè)備驅(qū)動程序處理,而設(shè) 備獨立性軟件處理 那些設(shè)備驅(qū)動程序無法處理的錯 誤。設(shè)備獨立性軟件 執(zhí)行所有設(shè)備的公有操作:
向用戶層(或文件層)軟件提供統(tǒng)一接口,無論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同的。例如,對各種設(shè)備的讀操作,在應(yīng)用程序中都使用read;而對各種設(shè)備的寫操作,也都使用write。邏輯設(shè)備表2)LUT的設(shè)置問題 邏輯設(shè)備表設(shè)備分配 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DCT設(shè)備分配 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DC控制器控制表、通道控制表和系統(tǒng)設(shè)備表控制器表、通道表、系統(tǒng)設(shè)備表控制器控制表、通道控制表和系統(tǒng)設(shè)備表控制器表、通道表、系統(tǒng)83 設(shè)備分配時應(yīng)考慮的因素獨享設(shè)備:只能分配給一個用戶或者進程使用。
(2)共享設(shè)備:可分配給多個用戶或者多個進程使用。
(3)虛擬設(shè)備:可分配給多個用戶或者多個進程使用, 但需要在實際的物理設(shè)備上排序。 設(shè)備的固有屬性 設(shè)備分配時應(yīng)考慮的因素獨享設(shè)備:只能分配給一個用戶獨占設(shè)備的分配程序分配設(shè)備 2)分配控制器 3)分配通道 存在的問題: 1)進程以物理設(shè)備請求資源 2)單通道型,造成瓶頸 基本的設(shè)備分配程序:以有I/O通道的系統(tǒng)為例獨占設(shè)備的分配程序分配設(shè)備 基本的設(shè)備分配程序:以有I/設(shè)備分配程序的改進
增加設(shè)備的獨立性:進程采用邏輯名請求I/O。這樣,可以從SDT(系統(tǒng)設(shè)備表)中輪詢合適的同類設(shè)備。
2)考慮多通路情況:對通道和控制器采用輪詢的方式查找合適的設(shè)備。設(shè)備分配程序的改進增加設(shè)備的獨立性:進程采用邏輯名請求I/磁盤調(diào)度
磁盤是一種共享設(shè)備,當有多個進程共同請求磁盤時,需要采用合理 的磁盤調(diào)度方法,保證各個進程對磁盤的平均 訪問時間(尋 道時間)最少。即磁盤調(diào)度的目標是使磁盤的平均尋道時間最少。
下面介紹幾種目前常用的磁盤調(diào)度算法:
先來先服務(wù)(FCFS,FirstComeFirstServerd)
它根據(jù)進程請求訪問磁盤的先后次序進行調(diào)度。此算法優(yōu)點是公平、 簡單,且每個進程的請求都能依次地得到處理,不會出現(xiàn)某一進程 的請求長期得不到滿足的情況。但此算法由于未對尋道進行優(yōu)化, 致使平均尋道時間可能較長。故FCFS算法僅適用于請求磁盤I/O的進 程數(shù)目較少的場合。
最短尋道時間優(yōu)先(SSTF,ShortestSeekTimeFirst)
其要求訪問的磁
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 花卉種植的自動化與智能化技術(shù)考核試卷
- 信息系統(tǒng)監(jiān)理師考試內(nèi)容展望試題及答案
- 調(diào)味品生產(chǎn)設(shè)備選型與維護保養(yǎng)考核試卷
- 軟件測試中的時間管理策略試題及答案
- 氣體凈化技術(shù)在飼料工業(yè)的應(yīng)用考核試卷
- 網(wǎng)絡(luò)技術(shù)與軟件開發(fā)結(jié)合試題及答案
- 行政組織文化建設(shè)的重要性試題及答案
- 行政組織理論的教學方法對比與2025年試題及答案
- 客服大廳電腦管理制度
- 公司外幣結(jié)匯管理制度
- 2025購銷茶葉合同范本
- 研究我國平臺企業(yè)在社會責任履行及其治理機制的現(xiàn)狀與問題
- 安全管理:承包商安全管理制度(模板)
- 2025年宣城郎溪開創(chuàng)控股集團有限公司下屬子公司招聘12人筆試參考題庫附帶答案詳解
- 山東濟南歷年中考作文題與審題指導(2005-2021)
- 訂制衣柜付款合同協(xié)議
- 風冷模塊培訓課件
- 地下室抗浮錨桿監(jiān)理實施細則
- 打磨作業(yè)指導書
- 醫(yī)院體檢報告模板(共2頁)
- 上海市住宅小區(qū)雨污混接改造項目管理實施細則
評論
0/150
提交評論