《windows操作系統(tǒng)之設(shè)備管理課件》由會員分享,可在線閱讀,更多相關(guān)《windows操作系統(tǒng)之設(shè)備管理課件(48頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,Windows-,設(shè)備管理,Windows I/O,系統(tǒng),Windows I/O,系統(tǒng)由若干,執(zhí)行體組件,與,設(shè)備驅(qū)動程序,構(gòu)成,聯(lián)合起來管理硬件設(shè)備,并向應(yīng)用程序和系統(tǒng)提供接口以操縱硬件設(shè)備。,Windows I/O,系統(tǒng)的設(shè)計目標(biāo)是,為,應(yīng)用程序,提供一個有關(guān)設(shè)備的,抽象,,包括硬件(物理)設(shè)備和軟件(虛擬或邏輯)設(shè)備。,I/O,管理器,I/O,管理器是,I/O,系統(tǒng)的核心;,它將應(yīng)用程序和系統(tǒng)組件與虛擬的、邏輯的和物理的設(shè)備連接起來,并定義了基礎(chǔ)設(shè)施來支持設(shè)備驅(qū)動程序。,設(shè)備驅(qū)動程序,設(shè)備驅(qū)動程序通常
2、為某一種特定類型的設(shè)備提供,I/O,接口;,設(shè)備驅(qū)動程序接收來自,I/O,管理器傳送來的命令,完成這些命令,然后通知,I/O,管理器;,設(shè)備驅(qū)動程序通常使用,I/O,管理器來向其他的共享統(tǒng)一設(shè)備接口的設(shè)備驅(qū)動程序轉(zhuǎn)送,I/O,命令。,PnP,管理器,PnP,管理器與,I/O,管理器及總線驅(qū)動程序(,bus driver,)一起工作,以指導(dǎo)硬件資源的分配,檢測并響應(yīng)硬件設(shè)備的加入和移除。,PnP,管理器和總線驅(qū)動程序負(fù)責(zé)在檢測到一個設(shè)備時,加載該設(shè)備的驅(qū)動程序。,當(dāng)一個設(shè)備被加入到缺乏正確設(shè)備驅(qū)動程序的系統(tǒng)中時,執(zhí)行體,PnP,管理器將請求用戶模式,PnP,管理器的設(shè)備安裝服務(wù)。,電源管理器,電
3、源管理器與,I/O,管理器一起工作,以指導(dǎo)系統(tǒng)和各個單獨(dú)的設(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)機(jī)狀態(tài)等。,硬件抽象層,HAL,HAL,提供一組,API,,將不同平臺之間的差異隱藏起來,從而使驅(qū)動程序與處理器和中斷控制器的特殊性相互隔離開。,一組,Windows,管理規(guī)范(,WMI,)支持例程,即,Windows,驅(qū)動程序模型(,WDM,),WMI,提供者,主要用于系統(tǒng)管理和監(jiān)視。,設(shè)備驅(qū)動程序可以使用,WDM WMI,提供者作為中間媒介與用戶模式的,WMI,服務(wù)進(jìn)行通信。,同時需要注意的是:,Windows,操作系統(tǒng)是
4、,分態(tài),的操作系統(tǒng),用戶應(yīng)用程序運(yùn)行在,用戶態(tài),,操作系統(tǒng)代碼(如系統(tǒng)服務(wù)和設(shè)備驅(qū)動程序)在,核心態(tài),下運(yùn)行。,用戶態(tài)程序只能調(diào)用,Windows,子系統(tǒng)提供的,API,來同設(shè)備交互,當(dāng)請求傳遞到,I/O,管理器,時,它進(jìn)行必要的參數(shù)匹配和操作安全性檢查,然后由這個請求構(gòu)造出合適的,I/O,請求包,(IRP),并把此,IRP,傳遞到適當(dāng)?shù)尿?qū)動程序去,并給應(yīng)用程序一個消息,通知這次,I/O,操作還沒完成。,驅(qū)動程序一般是通過硬件抽象層來和硬件交互,從而完 成,I/O,請求工作。,驅(qū)動程序完成,I/O,操作后,它將調(diào)用一個特殊的內(nèi)核服務(wù) 例程來完成,IRP,。這時,,I/O,管理器把數(shù)據(jù)和結(jié)果返回
5、給,Windows,和用戶應(yīng)用程序。,I/O,控制方式,程序,I/O,方式,中斷驅(qū)動,I/O,控制方式,DMA I/O,控制方式,I/O,通道控制方式,程序,I/O,方式,向,I/O,控制器發(fā)讀命令,讀,I/O,控制器的狀態(tài),檢查狀態(tài)?,從,I/O,控制器中讀入字,向存儲器中寫字,傳送完成?,下一條指令,完成,CPUI/O,I/OCPU,I/OCPU,出錯,CPU,內(nèi)存,未完,未就緒,就緒,中斷驅(qū)動,I/O,控制方式,向,I/O,控制器發(fā)讀命令,讀,I/O,控制器的狀態(tài),檢查狀態(tài)?,從,I/O,控制器中讀入字,向存儲器中寫字,傳送完成?,下一條指令,完成,CPUI/O,I/OCPU,I/OCP
6、U,出錯,CPU,內(nèi)存,未完,就緒,CPU,做其它事,中斷,DMA,控制方式,設(shè)置,MAR,和,DC,初值,啟動,DMA,傳送命令,挪用存儲器周期傳送數(shù)據(jù)字,存儲器地址增,1,字計數(shù)寄存器減,1,DC=0,?,請求中斷,在繼續(xù)執(zhí)行用戶程序的同時,準(zhǔn)備又一次傳送,否,是,I/O,通道控制方式,簡介:,I/O,通道方式,是,DMA,方式,的發(fā)展,可進(jìn)一步減少,CPU,的干預(yù),把對一個,數(shù)據(jù)塊,的讀(或?qū)懀閱挝坏母?預(yù)減少為對,一組數(shù)據(jù)塊,的讀(或?qū)懀┘坝嘘P(guān)的控制和管 理為單位的干預(yù)。通道時負(fù)責(zé)外圍設(shè)備與主存之間進(jìn)行 數(shù)據(jù)交換、能單獨(dú)完成輸入輸出操作的處理機(jī)。它控制 設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換,它
7、有自己的通道指令,這些通道指令的運(yùn)行由,CPU,啟動,并在操作結(jié)束時向,CPU,發(fā)出中斷信號。,通道程序由一系列通道指令所構(gòu)成,通道指令的每條指 令中包含如下信息:,操作碼,;,內(nèi)存地址,;,計數(shù),;,通道程序結(jié)束位,P,;,記錄結(jié)束標(biāo)志,R,。,工作流程:,CPU,向,I/O,通道發(fā)送一條,I/O,指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的,I/O,設(shè)備,通道程序接到該指令后,通過執(zhí)行通道程序便可完成,CPU,指定的,I/O,任務(wù)。,I/O,通道控制方式的優(yōu)點(diǎn):實(shí)現(xiàn),CPU,、,通道,和,I/O,設(shè)備,三者的并行操作,執(zhí)行一個通道程序可以完成幾批,I/O,操作,更有效地提高整個系統(tǒng)的,
8、資源利用率,。,緩沖管理,緩沖技術(shù):,1.,發(fā)送請求,發(fā)出一段時間,后才執(zhí)行輸出傳送;,2.,輸入請求,發(fā)出之前,就執(zhí)行輸入傳送。,緩沖的引入的作用:,1.,緩和,CPU,與,I/O,設(shè)備,間速度不匹配的矛盾。,2.,減少對,CPU,的中斷頻率,放寬對,CPU,中斷響應(yīng)時間的限制,3.,提高,CPU,和,I/O,設(shè)備,之間的并行性。,0.1ms,0.8ms,0.8ms,單緩沖,(Single Buffer),Max(C,T)+M,雙緩沖,(Double Buffer),Max(C,T),雙機(jī)通信時緩沖區(qū)的設(shè)置,循環(huán)緩沖,公用緩沖池,(Buffer Pool),緩沖池的組成:對于既可用于輸入又可
9、用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū):,空,(,閑,),緩沖區(qū);,裝滿輸入數(shù)據(jù)的緩沖區(qū);,裝滿輸出數(shù)據(jù)的緩沖區(qū)。,為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個 隊(duì)列,于是可形成以下三個隊(duì)列:,(1),空緩沖隊(duì)列,emq,。,(2),輸入隊(duì)列,inq,。,(3),輸出隊(duì)列,outq,。,Getbuf,過程和,Putbuf,過程,Procedure Getbuf(type),begin,Wait(RS(type);,Wait(MS(type);,B(number)=Takebuf(type);,Signal(MS(type);,end,Procedure Putbuf(typ
10、e,number),begin,Wait(MS(type);,Addbuf(type,number);,Signal(MS(type);,Signal(RS(type);,end,緩沖區(qū)的工作方式,I/O,軟件的設(shè)計目標(biāo),I/O,軟件的總目標(biāo):,高效率:確保,I/O,設(shè)備與,CPU,的并發(fā)性。,通用性:提供簡單抽象清晰和統(tǒng)一的接口。,I/O,軟件的具體目標(biāo):,與具體設(shè)備無關(guān),統(tǒng)一命名:不同的,OS,命名規(guī)則不一樣。,錯誤處理:越底層處理越好,緩沖技術(shù),設(shè)備的分配和釋放,I/O,控制方式,I/O,軟件的層次結(jié)構(gòu),中斷處理程序,中斷程序的功能:,進(jìn)程上下文的切換、中斷源的測試、讀取設(shè)備狀態(tài)和修改進(jìn)
11、程狀態(tài)。,中斷程序的過程:,喚醒被阻塞的驅(qū)動程序,保護(hù)中斷進(jìn)程的,CPU,環(huán)境,轉(zhuǎn)入響應(yīng)的設(shè)備處理程序,中斷處理,恢復(fù)被中斷的進(jìn)程現(xiàn)場,中斷現(xiàn)場保護(hù)示意圖,中斷處理流程圖,設(shè)備驅(qū)動程序,設(shè)備驅(qū)動程序的功能:,(1),接收由,I/O,進(jìn)程發(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è)備隊(duì)列上等待。,(4),及時響應(yīng)由控制器或通道發(fā)來的中斷請求
12、并進(jìn)行處理。,(5),對于設(shè)置有通道的計算機(jī)系統(tǒng),驅(qū)動程序還應(yīng)能夠根 據(jù)用戶的,I/O,請求,自動地構(gòu)成通道程序。,設(shè)備驅(qū)動程序的特點(diǎn),(1),驅(qū)動程序主要是指在請求,I/O,的進(jìn)程與設(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ū)動程序的處理過程,1.,將抽象要求轉(zhuǎn)換為具體要求,2.,檢查,I/O,請求的合法性,3.,讀出和檢查設(shè)備的狀態(tài),4.,傳
13、送必要的參數(shù),5.,工作方式的設(shè)置,6.,啟動,I/O,設(shè)備,Windows,驅(qū)動程序模型重新定義了驅(qū)動程序分層:,FDO,FIDO,PDO,FIDO,上層過濾層驅(qū)動程序,IRP,功能驅(qū)動程序,下層過濾層驅(qū)動程序,總線驅(qū)動程序,。,。,。,。,WDM,驅(qū)動程序?qū)哟谓Y(jié)構(gòu),該層次結(jié)構(gòu)左邊是一個,設(shè)備對象堆棧,。,設(shè)備對象,是系統(tǒng) 為幫助軟件管理硬件而創(chuàng)建的數(shù)據(jù)結(jié)構(gòu)。一個物理硬件 可以有多個這樣的數(shù)據(jù)結(jié)構(gòu)。,處于堆棧最底層的設(shè)備對象稱為,物理設(shè)備對象,PDO(Physical Device Object),,代表了設(shè)備與總線之 間的連接。,在設(shè)備對象堆棧中間的對象稱為,功能設(shè)備對象,FDO(Func
14、tional Device Object),,代表了設(shè)備的功能。,在,FDO,的上面或下面還會有一些,過濾器設(shè)備對象,FIDO(Filter Device Object),。,總線驅(qū)動程序,負(fù)責(zé)枚舉它的總線,這意味著:發(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ū)動程
15、序之下。這種層次結(jié)構(gòu)可以使,I/O,請求過程更加明了。,I/O,管理器發(fā)送的,IRP,,先被送到設(shè)備堆棧的,上層過濾器驅(qū)動程序,(FIDO),它可以根據(jù)要求決定,IRP,的處理方式,是沿著設(shè)備棧繼續(xù)向下傳,或者做另外的處理。,每一層程序都可以決定如何處理,IRP,。,高層的驅(qū)動程序,可以把請求劃分成更簡單的請求并傳遞給下層驅(qū)動程序。,中間層次的驅(qū)動程序,進(jìn)一步處理請求,將一個,IRP,中的請求劃分為若干個小的請求,并傳給下層驅(qū)動程序。最后,最底層的驅(qū)動程序與硬件打交道。,我們應(yīng)該知道,一些,IRP,在到達(dá)總線程序之前,在設(shè)備傳遞過程中可能就被過濾掉了。,設(shè)備獨(dú)立性軟件,執(zhí)行所有設(shè)備的公有操作:
16、,對獨(dú)立設(shè)備的分配與回收;,將邏輯設(shè)備名映射為物理設(shè)備名,進(jìn)一步可以找到相應(yīng)物理設(shè)備的驅(qū)動程序;,對設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問設(shè)備;,緩沖管理,即對字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行有效的管理,以提高,I/O,的效率;,差錯控制。由于在,I/O,操作中的絕大多數(shù)錯誤都與設(shè)備無關(guān),故主要由設(shè)備驅(qū)動程序處理,而設(shè)備獨(dú)立性軟件處理那些設(shè)備驅(qū)動程序無法處理的錯誤。,向用戶層,(,或文件層,),軟件提供統(tǒng)一接口,無論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同的。例如,對各種設(shè)備的讀操作,在應(yīng)用程序中都使用,read;,而對各種設(shè)備的寫操作,也都使用,write,。,邏輯設(shè)備表,2)LUT,的設(shè)置問題,設(shè) 備 分 配,設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu),設(shè)備控制表,DCT,控制器控制表、通道控制表和系統(tǒng)設(shè)備表,控制器表、通道表、系統(tǒng)設(shè)備表,設(shè)備分配時應(yīng)考慮的因素,獨(dú)享設(shè)備:只能分配給一個用戶或者進(jìn)程使用。,(2),共享設(shè)備:可分配給多個用戶或者多個進(jìn)程使用。,(3),虛擬設(shè)備:可分配給多個用戶或者多個進(jìn)程使用,,但需要在實(shí)際的物理設(shè)備上排序。,設(shè)備的固有屬性,獨(dú)占設(shè)備的分配程序,分配設(shè)備,2),分配控制器,3),