




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、15.8Linux的設(shè)備管理5.8.1 設(shè)備管理概述5.8.2 設(shè)備驅(qū)動(dòng)程序5.8.3 設(shè)備I/O的處理25.8.1 Linux設(shè)備管理概述 Linux中,設(shè)備當(dāng)作文件處理,可使用標(biāo)準(zhǔn)文件系統(tǒng)調(diào)用來(lái)控制設(shè)備操作。對(duì)于字符設(shè)備和塊設(shè)備,其設(shè)備文件用mknod命令創(chuàng)建,用主設(shè)備號(hào)和次設(shè)備號(hào)標(biāo)識(shí),同一設(shè)備驅(qū)動(dòng)程序控制的所有設(shè)備具有相同的主設(shè)備號(hào),并用不同次設(shè)備號(hào)加以區(qū)別; 網(wǎng)絡(luò)設(shè)備也當(dāng)作設(shè)備文件來(lái)處理,不同的是這類設(shè)備由Linux創(chuàng)建,并由網(wǎng)絡(luò)控制器初始化; 設(shè)備文件與普通文件有著根本不同,當(dāng)進(jìn)程訪問(wèn)普通文件時(shí),它會(huì)通過(guò)文件系統(tǒng)訪問(wèn)磁盤分區(qū)中的數(shù)據(jù)塊;當(dāng)進(jìn)程訪問(wèn)設(shè)備文件時(shí),它只要驅(qū)動(dòng)物理設(shè)備就行,V
2、FS負(fù)責(zé)為應(yīng)用程序隱蔽設(shè)備文件與普通文件之間的差異,可把對(duì)設(shè)備文件的任一系統(tǒng)調(diào)用轉(zhuǎn)換成對(duì)設(shè)備驅(qū)動(dòng)程序的函數(shù)調(diào)用。35.8.2 設(shè)備驅(qū)動(dòng)程序1 驅(qū)動(dòng)程序的注冊(cè)與注銷2 設(shè)備的打開(kāi)與釋放3 設(shè)備的讀寫操作4 設(shè)備的控制操作和控制方式45.8.3 設(shè)備I/O的處理1 數(shù)據(jù)傳輸和設(shè)備驅(qū)動(dòng)2 塊設(shè)備請(qǐng)求3 低級(jí)請(qǐng)求處理55.9Windows 2003I/O系統(tǒng)系統(tǒng) 5.9.1 I/O系統(tǒng)結(jié)構(gòu)和組件 5.9.2 I/O系統(tǒng)數(shù)據(jù)結(jié)構(gòu)5.9.3 I/O類型和處理5.9.4 高速緩存管理 65.9.1 I/O系統(tǒng)結(jié)構(gòu)和組件(1) Windows I/O系統(tǒng)是執(zhí)行體的組件,存在于 NTOSKRNLEXE文件中。
3、它接受來(lái)自用戶態(tài)和核心態(tài)的I/O請(qǐng)求,并以不同形式把它們傳送到I/O設(shè)備。 7I/O系統(tǒng)結(jié)構(gòu)和組件(2) 用戶模式即插即用管理器應(yīng)用程序WIN32系統(tǒng)服務(wù)W M I服務(wù)安裝組件.inf.cat注 冊(cè)表用戶態(tài)核心態(tài)I/O管理器即插即用管理器電源管理器WDM WMI例程WDM接口WDM即插即用總線驅(qū)動(dòng)器ACPIPC卡USBPCIWDM設(shè)備驅(qū)動(dòng)程序即插即用驅(qū)動(dòng)程序硬件抽象層HALI/O接口電源管理器接口即插即用接口執(zhí)行體其它接口8一個(gè)典型的I/O請(qǐng)求流程I/O系統(tǒng)服務(wù)API(NtXXX)I/O管理器核心態(tài)設(shè)備驅(qū)動(dòng)程序HAL I/O服務(wù)例程I/O端口和寄存器驅(qū)動(dòng)程序支持例程用戶模式API9I/O管理的
4、特點(diǎn)1) I/O包驅(qū)動(dòng)2) 通過(guò)虛擬文件實(shí)現(xiàn)I/O操作105.9.2I/O系統(tǒng)數(shù)據(jù)結(jié)構(gòu) 四種數(shù)據(jù)結(jié)構(gòu)代表了I/O請(qǐng)求: 文件對(duì)象、 驅(qū)動(dòng)程序?qū)ο蟆?設(shè)備對(duì)象、 IO請(qǐng)求包(IRP)。 111、文件對(duì)象 文件作為對(duì)象來(lái)管理,是可以共享的系統(tǒng)資源,被基于對(duì)象的安全性所保護(hù),并且它們支持同步。 當(dāng)調(diào)用者打開(kāi)文件或單一設(shè)備時(shí),I/O管理器為文件對(duì)象返回句柄。 文件對(duì)象由包含訪問(wèn)控制表(ACL)的安全描述體保護(hù)。 I/0管理器查看安全子系統(tǒng)來(lái)決定文件的ACL是否允許進(jìn)程去訪問(wèn)它的線程正在請(qǐng)求的文件。 122、驅(qū)動(dòng)程序?qū)ο蠛驮O(shè)備對(duì)象(1) 線程為文件對(duì)象打開(kāi)句柄時(shí),I/O管理器根據(jù)文件對(duì)象名稱來(lái)決定將調(diào)用
5、哪個(gè)或哪些驅(qū)動(dòng)程序來(lái)處理請(qǐng)求。下面的系統(tǒng)對(duì)象滿足這些要求: 驅(qū)動(dòng)程序?qū)ο?,I/O管理器從驅(qū)動(dòng)程序?qū)ο笾蝎@得并且為I/O記錄每個(gè)驅(qū)動(dòng)程序的調(diào)度例程的地址。 設(shè)備對(duì)象在系統(tǒng)中代表一個(gè)物理的、邏輯的設(shè)備并描述它的特征,例如,所需要的緩沖區(qū)的對(duì)齊方式和用來(lái)保存I/O請(qǐng)求包的設(shè)備隊(duì)列位置。13驅(qū)動(dòng)程序?qū)ο蠛驮O(shè)備對(duì)象(2)功能碼1功能碼2 功能碼n驅(qū)動(dòng)程序?qū)ο笞x寫設(shè)備控制啟動(dòng)I/O卸載取消設(shè)備對(duì)象設(shè)備對(duì)象設(shè)備對(duì)象該驅(qū)動(dòng)程序操作的設(shè)備143、I/O請(qǐng)求包 (1) IRP是I/O系統(tǒng)用來(lái)存儲(chǔ)處理IO請(qǐng)求所需信息的數(shù)據(jù)結(jié)構(gòu)。 線程調(diào)用I/O服務(wù)時(shí),I/O管理器就構(gòu)造一個(gè)IRP來(lái)表示在整個(gè)系統(tǒng)I/O進(jìn)展中要進(jìn)行的
6、操作。 I/O管理器在IRP中保存一個(gè)指向調(diào)用者文件對(duì)象的指針。15I/O請(qǐng)求包 (2) IRP由兩部分組成 固定部分(標(biāo)題)和一個(gè)或多個(gè)堆棧單元。 固定部分包括:請(qǐng)求的類型和大小、同步請(qǐng)求還是異步請(qǐng)求、用于緩沖I/O的指向緩沖區(qū)的指針和隨著請(qǐng)求的進(jìn)展而變化的狀態(tài)信息。 IRP堆棧單元包括一個(gè)功能碼、功能特定的參數(shù)和指向調(diào)用者文件對(duì)象的指針。164 驅(qū)動(dòng)程序分類和組成1) 驅(qū)動(dòng)程序分類:(1)核心模式驅(qū)動(dòng)程序。 (2)用戶模式驅(qū)動(dòng)程序。 (3)硬件支持驅(qū)動(dòng)程序。2)包括調(diào)用處理I/O請(qǐng)求不同階段的例程,主要有:初始化例程、功能例程、啟動(dòng)I/O例程、中斷服務(wù)例程、延遲過(guò)程調(diào)用例程、完成例程、取消
7、例程、卸載例程、系統(tǒng)關(guān)閉通知例程和錯(cuò)誤記錄例程。175 多處理機(jī)中I/O同步問(wèn)題 多個(gè)CPU上運(yùn)行,驅(qū)動(dòng)程序必須同步執(zhí)行的主要原因。 驅(qū)動(dòng)程序必須同步執(zhí)行的方法。185.9.3 I/O類型和處理(1)1 I/O類型 1) 同步I/O和異步I/O 2) 快速I/O 3) 映射文件I/O和文件高速緩存 4) 分散/集中I/O19I/O類型和處理(2) 2 I/O處理步驟(1) Windows核心態(tài)設(shè)備驅(qū)動(dòng)程序I/O請(qǐng)求包含步驟: I/O庫(kù)函數(shù)經(jīng)過(guò)語(yǔ)言的運(yùn)行時(shí)庫(kù)轉(zhuǎn)換成對(duì)子系統(tǒng)DLL的調(diào)用; 子系統(tǒng)DLL調(diào)用I/O的系統(tǒng)服務(wù); I/O系統(tǒng)服務(wù)調(diào)用對(duì)象管理程序,檢查給定的文件名,再搜索名空間,把控制轉(zhuǎn)交
8、給I/O管理器尋找文件對(duì)象; 驅(qū)動(dòng)程序詢問(wèn)安全子系統(tǒng),確定線程的存取權(quán)限。20I/O類型和處理(3) I/O處理步驟(2) I/O管理器以IRP的形式將I/O請(qǐng)求送給設(shè)備驅(qū)動(dòng)程序,驅(qū)動(dòng)程序啟動(dòng)I/O操作; 設(shè)備完成指定操作,請(qǐng)求I/O中斷,設(shè)備驅(qū)動(dòng)程序的ISR服務(wù)于中斷; I/O管理器再調(diào)用I/O完成例程,將完成狀態(tài)返回給調(diào)用線程。 上述是同步I/O執(zhí)行的步驟,對(duì)于異步I/O,還要增加一步,I/O管理器將控制返回調(diào)用線程,使得調(diào)用線程與I/O操作并行執(zhí)行。213 對(duì)單層驅(qū)動(dòng)程序的I/O請(qǐng)求處理創(chuàng)建IRP,發(fā)送到設(shè)備驅(qū)動(dòng)程序IRP頭部WriteFile(參數(shù))核心態(tài)用戶態(tài)應(yīng)用程序執(zhí)行WriteF
9、ile(參數(shù));環(huán)境子系統(tǒng)或DLLI/O請(qǐng)求傳送到環(huán)境子系統(tǒng)DLLNtWriteFile(參數(shù))完成傳輸,返回成功或錯(cuò)誤狀態(tài)I/O管理器設(shè)備驅(qū)動(dòng)調(diào)度例程啟動(dòng)I/O例程ISR例程DPC例程打印機(jī)執(zhí)行I/O并產(chǎn)生中斷I/O系統(tǒng)服務(wù)處理中數(shù),將成功/錯(cuò)誤碼填入IRP返回文件對(duì)象設(shè)備對(duì)象驅(qū)動(dòng)程序?qū)ο笙蝌?qū)動(dòng)程序傳送IRP中指定參數(shù)224 對(duì)多層驅(qū)動(dòng)程序的I/O請(qǐng)求處理1) 打開(kāi)一個(gè)文件2) 讀文件3) 寫文件235.9.4高速緩存管理1高速緩存管理器主要特征 (1)單一集中式系統(tǒng)高速緩存(2)與主存管理器結(jié)合 (3)高速緩存的一致性 (4)虛擬塊緩存 (5)基于流的緩存 (6)可恢復(fù)文件系統(tǒng)支持 242
10、、高速緩存的結(jié)構(gòu)(1) 系統(tǒng)高速緩存管理器基于虛擬空間緩存數(shù)據(jù),它管理一塊系統(tǒng)虛擬地址空間區(qū)域,而不是一塊物理主存區(qū)域。 高速緩存管理器把每個(gè)地址空間區(qū)域分成256KB的槽(slot),被稱為視圖(view)。25高速緩存的結(jié)構(gòu)(2) 視圖0視圖1視圖2視圖3視圖4 視圖n區(qū)域0區(qū)域1區(qū)域0區(qū)域0視圖5區(qū)域1區(qū)域2系統(tǒng)高速緩存文件A(500KB)文件B(750KB)文件C(100KB)263高速緩存的操作 (1)回寫緩存和延遲寫 (2)計(jì)算臟頁(yè)閾值 (3)屏蔽對(duì)文件延遲寫 (4)強(qiáng)制寫緩存到磁盤 (5)刷新被映射的文件 (6)智能預(yù)讀 (7)虛擬地址預(yù)讀 (8)帶歷史信息的異步預(yù)讀 27快速IO 讀寫被緩存文件可用被稱為快速IO的高速機(jī)制來(lái)處理。快速IO讀寫一個(gè)緩存的文件不要產(chǎn)生IO請(qǐng)求包(1RP)。 有了快速IO機(jī)制,IO管理器可以調(diào)用文件系統(tǒng)驅(qū)動(dòng)程序的快速IO例程來(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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高??萍汲晒D(zhuǎn)移轉(zhuǎn)化的面臨的主要問(wèn)題
- 拔尖創(chuàng)新人才培養(yǎng)的師資隊(duì)伍建設(shè)策略
- 包鋼廢鋼合同范本
- 科技賦能下的現(xiàn)代農(nóng)業(yè)教育體系構(gòu)建
- 未來(lái)教育趨勢(shì)項(xiàng)目式學(xué)習(xí)與思政教育的深度融合
- 臨滄云南臨滄市鎮(zhèn)康縣司法局招聘司法協(xié)理員筆試歷年參考題庫(kù)附帶答案詳解
- 國(guó)企蔬菜采購(gòu)合同范本
- PIN1-inhibitor-5-生命科學(xué)試劑-MCE
- MDBP-hydrochloride-生命科學(xué)試劑-MCE
- 綜治宣傳合同范本
- 醛固酮增多癥與原發(fā)性醛固酮增多癥概述
- 山東省淄博市2023-2024學(xué)年高一下學(xué)期期末教學(xué)質(zhì)量檢測(cè)數(shù)學(xué)試題
- 廣東省2024年普通高中學(xué)業(yè)水平合格性考試語(yǔ)文仿真模擬卷01(解析版)
- 2025屆新高考生物精準(zhǔn)復(fù)習(xí)+提高農(nóng)作物產(chǎn)量
- 第6課歐洲的思想解放運(yùn)動(dòng)教學(xué)設(shè)計(jì)2023-2024學(xué)年中職高一下學(xué)期高教版(2023)世界歷史
- 2024年云南省昆明市選調(diào)生考試(公共基礎(chǔ)知識(shí))綜合能力題庫(kù)必考題
- 2024年時(shí)政試題庫(kù)(奪分金卷)
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案1套
- 工程項(xiàng)目移交方案
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)參考答案
- 腎性高血壓的護(hù)理
評(píng)論
0/150
提交評(píng)論