操作系統(tǒng)第7章課件_第1頁
操作系統(tǒng)第7章課件_第2頁
操作系統(tǒng)第7章課件_第3頁
操作系統(tǒng)第7章課件_第4頁
操作系統(tǒng)第7章課件_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、24 七月 2022第7章 操作系統(tǒng)實例一:Windows XP24 七月 2022目 錄7.1 Windows XP的處理機(jī)管理7.2 Windows XP的存儲管理7.3 Windows XP的文件管理7.4 Windows XP的設(shè)備管理24 七月 2022教學(xué)目標(biāo)熟練掌握: Windows XP線程調(diào)度方式,Windows XP 的地址轉(zhuǎn)換過程,Windows XP內(nèi)存中的頁面調(diào)度,Windows XP的文件系統(tǒng),NTFS的概念和作用,Windows XP設(shè)備管理的層次。掌握: Windows XP地址的空間布局,NTFS文件和目錄的結(jié)構(gòu),Windows XP單層驅(qū)動程序的I/O處理。

2、了解: Windows XP的體系結(jié)構(gòu),NTFS對可恢復(fù)性的支持,Windows XP兩級中斷處理過程。24 七月 2022 Windows是微機(jī)操作系統(tǒng)新潮流的一個重要例子。這些操作系統(tǒng)的最重要的特征之一就是它們是多任務(wù)操作系統(tǒng)。 Windows并不是純粹的微內(nèi)核結(jié)構(gòu),但微軟將其稱為改進(jìn)的微內(nèi)核結(jié)構(gòu)。和純粹的微內(nèi)核結(jié)構(gòu)一樣,Windows是高度模塊化的。每個系統(tǒng)函數(shù)都正好由一個操作系統(tǒng)部件管理,操作系統(tǒng)的其余部分和所有應(yīng)用程序通過相應(yīng)的部件使用標(biāo)準(zhǔn)接口訪問這個函數(shù)。24 七月 2022 分層結(jié)構(gòu),指的是把操作系統(tǒng)的所有功能模塊按照調(diào)用的次序分別劃分為若干層,各層之間的模塊只能單向依賴或單向調(diào)

3、用。 Windows XP采用的最主要的體系結(jié)構(gòu)是客戶/服務(wù)器結(jié)構(gòu),采用這種結(jié)構(gòu)的操作系統(tǒng)將非常適于應(yīng)用在網(wǎng)絡(luò)環(huán)境下。該結(jié)構(gòu)的內(nèi)核只提供了操作系統(tǒng)最基本的功能,如基本調(diào)度操作和中斷處理等??蛻?服務(wù)器結(jié)構(gòu)的優(yōu)點是可靠、靈活以及適用于網(wǎng)絡(luò)計算機(jī)環(huán)境,但也存在工作效率不高的缺陷。7.1.1 Windows XP的體系結(jié)構(gòu)7.1 Windows XP的處理機(jī)管理24 七月 2022 Windows XP通過硬件機(jī)制實現(xiàn)了核心態(tài)以及用戶態(tài),并為前者賦予了很高的特權(quán),允許處于核心態(tài)的程序調(diào)用特權(quán)指令來封殺任何用戶態(tài)的程序,而用戶態(tài)的程序只能調(diào)用常規(guī)的指令。一般來說,只有那些至關(guān)重要的、對性能影響很大的代

4、碼和組件才運(yùn)行在核心態(tài)。 如下圖所示的就是以核心態(tài)和用戶態(tài)為劃分原則的Windows XP體系結(jié)構(gòu)示意圖。24 七月 2022Windows XP操作系統(tǒng)的體系結(jié)構(gòu)24 七月 2022system support process 系統(tǒng)支 持進(jìn)程 user application 用戶應(yīng) 用程序 service process服務(wù)進(jìn)程 environment subsystem 環(huán)境子 系統(tǒng) 原則Window XP支持4種基本的用戶模式進(jìn)程類別24 七月 20221. Windows XP的進(jìn)程1)Windows XP進(jìn)程的組成Windows XP進(jìn)程包括以下內(nèi)容:(1)一個可執(zhí)行程序。(2)一

5、個由該進(jìn)程專用的地址空間,它是該進(jìn)程可以使用的虛擬內(nèi)存地址的集合。(3)系統(tǒng)資源,如信號量、通信端口、文件等。它們由程序執(zhí)行,由操作系統(tǒng)分配給該進(jìn)程。(4)一個或多個線程。7.1.2 Window XP的進(jìn)程和線程24 七月 2022 2)Windows XP進(jìn)程間的關(guān)系 為了支持Win32、OS/2、POSIX等多種環(huán)境子系統(tǒng),Windows XP核心進(jìn)程之間沒有任何關(guān)系,各環(huán)境子系統(tǒng)分別建立、維護(hù)和表達(dá)各自的進(jìn)程關(guān)系。如圖72所示,Windows XP把Win32環(huán)境子系統(tǒng)設(shè)計成整個系統(tǒng)的子系統(tǒng),一些基本的進(jìn)程管理功能被放置在Win32子系統(tǒng)中,POSIX和OS/2等其他子系統(tǒng)則調(diào)用Win

6、32子系統(tǒng)的功能實現(xiàn)其自身功能。24 七月 2022資源管理器窗口24 七月 2022一個唯一的標(biāo)志符,稱為客戶ID(client ID)。Vision 01兩個棧,一個是用戶棧,在用戶態(tài)下執(zhí)行;另一個是核心棧,在核心態(tài)下執(zhí)行。Vision 03表示CPU狀態(tài)的一組易變寄存器的內(nèi)容。Vision 02一個由該線程專用的存儲區(qū)域,供保護(hù)子系統(tǒng)、動態(tài)鏈接庫等使用。Vision 04組成2. Windows XP的線程1)Windows XP線程的組成24 七月 2022狀態(tài)就緒狀態(tài):線程已獲得所需的資源,等處理機(jī)調(diào)度。終止?fàn)顟B(tài):線程執(zhí)行完后進(jìn)入終止?fàn)顟B(tài)。備用狀態(tài):已選擇好線程的執(zhí)行處理機(jī),正等待進(jìn)

7、入運(yùn)行狀態(tài)。運(yùn)行狀態(tài):已完成描述表的切換,線程開始執(zhí)行,執(zhí)行過程一直持續(xù)到被其他線程搶占處理機(jī)、時間片完、被阻塞或終止。過渡狀態(tài):與就緒狀態(tài)類似,但此時線程的內(nèi)核堆棧位于外存。等待狀態(tài):當(dāng)線程被一個事件阻塞,自愿等待或一個環(huán)境子系統(tǒng)指引它把自身掛起時進(jìn)入等待狀態(tài)。2)Windows XP線程的狀態(tài)及狀態(tài)轉(zhuǎn)換24 七月 2022Windows XP線程的狀態(tài)及各狀態(tài)間的轉(zhuǎn)換24 七月 20227.1.3 Window XP的線程調(diào)度實時優(yōu)先級主要適用于核心態(tài)的系統(tǒng)進(jìn)程Vision 01普通優(yōu)先級是用戶進(jìn)程創(chuàng)建時被默認(rèn)賦予的優(yōu)先級。Vision 03高優(yōu)先級是為一些必須及時得到響應(yīng)的進(jìn)程設(shè)置的。V

8、ision 02空閑優(yōu)先級是專為系統(tǒng)空閑時運(yùn)行的進(jìn)程設(shè)置的。Vision 04優(yōu)先級1. Windows XP進(jìn)程的優(yōu)先級24 七月 2022 2. Windows XP線程的優(yōu)先級 在Windows XP里,一旦線程被創(chuàng)建,它就取所屬進(jìn)程的優(yōu)先級。Windows XP線程的優(yōu)先級,可以取031的值,它們被分成3個部分: (1)16個實時線程優(yōu)先級(1631)。 (2)15個可變線程優(yōu)先級(115)。 (3)1個系統(tǒng)線程優(yōu)先級(0)。24 七月 2022 3.線程調(diào)度的管理 Windows XP用一張線程調(diào)度器就緒隊列表、一個就緒位圖、一個空閑位圖來管理有關(guān)線程的調(diào)度,如圖所示。 (1)線程調(diào)

9、度器就緒隊列表。該表共有 32 個表項,每個表項按照線程的優(yōu)先級,維持著一個具有該優(yōu)先級的線程就緒隊列。 (2)就緒位圖。就緒位圖由32個二進(jìn)制位組成。Windows XP用其中每位的取值,記錄相應(yīng)調(diào)度優(yōu)先級就緒隊列里是否有等待運(yùn)行的線程存在。 (3)空閑位圖??臻e位圖由32個二進(jìn)制位組成。Windows XP用其中的每位的取值,指示相應(yīng)處理機(jī)是否處于空閑狀態(tài)。 24 七月 2022Windows XP線程調(diào)度的管理24 七月 2022 Windows XP的用戶內(nèi)存被用戶態(tài)和核心態(tài)線程存取,并且對每個進(jìn)程都是唯一的,而系統(tǒng)內(nèi)存只能被核心態(tài)線程存取,并且對每個進(jìn)程都是相同的。 系統(tǒng)區(qū)按速度要求

10、不同又分為3部分,從快到慢依次為直接映射區(qū),非頁交換區(qū)和頁交換區(qū)。 系統(tǒng)區(qū)低端的直接映射區(qū)有3個特性: (1)該區(qū)中的內(nèi)容永遠(yuǎn)不會按頁交換出內(nèi)容。 (2)該區(qū)由硬件直接映射。 (3)該區(qū)用于存放代碼和數(shù)據(jù)庫中需要最好的性能的部分。7.2.1 Windows XP地址的空間布局7.2 Windows XP的存儲管理24 七月 2022Windows XP進(jìn)程虛擬空間的分配24 七月 2022 Windows XP的進(jìn)程頁表采用二級頁表機(jī)制實現(xiàn)虛擬地址向物理地址的轉(zhuǎn)換,并采用快表高速轉(zhuǎn)換后援緩沖器(TLB)和高速緩存加快訪問速度。一個32位虛擬地址被解釋為3個獨(dú)立的分量:頁目錄索引、頁表索引和字節(jié)

11、索引(它們用于找出描述頁面映射結(jié)構(gòu)的索引)。7.2.2 Windows XP的地址轉(zhuǎn)換機(jī)構(gòu)24 七月 2022頁目錄索引用于指出虛擬地址的頁目錄在頁表中的位置;頁表索引則用來確定頁表項在頁表中的具體位置,頁表項包含了虛擬地址被映射的物理地址;字節(jié)索引用于在物理頁中尋找某個具體的地址。在x86系統(tǒng)中,因為一頁為4 KB,那么字節(jié)索引可以用12位表示。x86系統(tǒng)中32位虛擬地址的構(gòu)成24 七月 2022 Windows XP系統(tǒng)中地址轉(zhuǎn)換的過程如下: 首先由內(nèi)存管理的硬件設(shè)備定位當(dāng)前進(jìn)程的頁目錄,由頁目錄索引在頁目錄中指出頁目錄的位置,其中頁目錄包含的頁框號(page frame number,P

12、FN)描述了虛擬地址所需的頁表的位置; 然后再在頁表索引中找到頁表項的位置,而頁表項正是用于確定頁框的位置,當(dāng)頁表項指向了有效的頁時,字節(jié)索引找到物理頁內(nèi)所需數(shù)據(jù)的地址。24 七月 2022虛擬地址的轉(zhuǎn)換過程24 七月 20227.2.3 Windows XP對內(nèi)存的管理在Windows XP中,物理頁在任意指定時刻可能處于以下6種狀態(tài)之一。狀態(tài)有效:該物理頁正在被某個進(jìn)程使用。壞頁:該物理頁產(chǎn)生了奇偶校驗錯誤或其他硬件錯誤,不能被使用。零初始化:該物理頁處于空閑狀態(tài),并已被初始化??臻e:該物理頁空閑,但沒有被初始化。更改:這個狀態(tài)只有一點與備用狀態(tài)不同,處于該狀態(tài)的物理頁已被使用它的進(jìn)程修改

13、過。備用:該物理頁被一個進(jìn)程使用,但已從該進(jìn)程的工作集中被刪除。24 七月 2022 每當(dāng)發(fā)生缺頁中斷時,先看所需要的頁是否在備用表或更改表中,若在,則將該頁從備用表或更改表中移出,收回到該項進(jìn)程的工作集中;若不在,如果需要的是一個零初始化頁,則內(nèi)存管理器試圖在零初始化頁表中取出首頁,若這個頁表已空,則從空閑表取出一頁并對該頁進(jìn)行零初始化,如果需要的不是零初始化頁,就從空閑表中取出第一頁,如果空閑表是空的,就從零初始化頁表中取一頁。 無論何時只要零初始化表、空閑表、備用表的頁數(shù)低于最小允許值,就喚醒名為“更改頁寫入程序”的線程,將更改表中的頁寫入磁盤,然后將這些頁移入備用表中。24 七月 20

14、227.2.4 Windows XP的頁面調(diào)度 在Windows XP系統(tǒng)中還提供了管理存儲數(shù)組形式的高速緩存,稱為快表。所謂關(guān)聯(lián)存儲器,即TLB,是一個向量,它的存儲單元能被同時讀取,并直接與目標(biāo)值比較。在TLB中,向量中包含了大多數(shù)最近使用過的虛擬頁到物理地址的映射及每頁的頁保護(hù)類型。由于常用的虛擬地址記錄在TLB中,這樣就使得虛擬地址到物理地址的轉(zhuǎn)換速度大大提高,而且減少了對內(nèi)存的訪問次數(shù)。24 七月 2022 內(nèi)存管理器利用請求頁面調(diào)度算法及簇方式將頁面裝入內(nèi)存。當(dāng)線程產(chǎn)生一次缺頁中斷時,內(nèi)存管理器將引發(fā)中斷的頁面及其后續(xù)的少量頁面裝入內(nèi)存。這個策略試圖減少線程引起的調(diào)頁I/O數(shù)量。

15、當(dāng)線程產(chǎn)生缺頁中斷時,內(nèi)存管理器還必須確定將調(diào)入的虛擬頁面放在物理內(nèi)存的何處。用于確定最佳位置的規(guī)則被稱為“置換算法”。在多處理機(jī)系統(tǒng)中,采用局部先進(jìn)先出的置換算法,在單處理機(jī)系統(tǒng)中,采用類似于最近最少使用的置換算法。24 七月 2022 文件系統(tǒng)是操作系統(tǒng)中最接近用戶的一層,必須為用戶提供一種簡便、統(tǒng)一的存取信息和管理信息的方法,即系統(tǒng)將信息統(tǒng)一組織成文件形式,建立文件控制塊,提供存儲訪問文件的手段。 Windows XP支持4種文件系統(tǒng),它們是:文件分配表(FAT)系統(tǒng)、擴(kuò)展文件分配表(VFAT)系統(tǒng)、NT文件系統(tǒng)(NTFS)以及高性能文件系統(tǒng)(HPFS)。同時隨著技術(shù)的發(fā)展和進(jìn)步,Win

16、dows XP提供了對分布式文件系統(tǒng)的客戶和服務(wù)器的支持。7.3.1 Windows XP文件系統(tǒng)綜述7.3 Windows XP的文件管理24 七月 2022 1.文件分配表(FAT)系統(tǒng) FAT是文件分配表(file allocation table)的英文縮寫。它是借助“文件分配表”來管理磁盤存儲空間、創(chuàng)建和使用文件的一種方法。 由FAT 管理的磁盤卷,被分為5個區(qū)域:引導(dǎo)區(qū),文件分配表1,文件分配表2,根目錄區(qū)以及數(shù)據(jù)存儲區(qū)。整個結(jié)構(gòu)如下圖所示。FAT卷的結(jié)構(gòu)24 七月 2022 引導(dǎo)區(qū):該區(qū)里存放的是引導(dǎo)程序,以及有關(guān)該卷的總信息(如扇區(qū)數(shù)、每個扇區(qū)的大小、文件分配表的大小、簇的尺寸

17、等)。 文件分配表 1 和文件分配表 2:文件分配表非常重要,因此每個磁盤卷上都安排有兩個文件分配表,它們的內(nèi)容完全相同。一個只是作為另一個的備份,以便必要時能夠起到恢復(fù)的作用。 根目錄區(qū):該區(qū)用于存放磁盤文件的根目錄文件。 數(shù)據(jù)存儲區(qū):該區(qū)會占用較大空間,用于存放用戶文件。24 七月 2022 2.擴(kuò)展文件分配表(VFAT)系統(tǒng) 在Windows XP中,通過對FAT文件系統(tǒng)的擴(kuò)展,長文件名問題得到了妥善解決,這也就是所謂的擴(kuò)展FAT(VFAT)文件系統(tǒng)。 但是為了同MSDOS和Win16位程序兼容,它仍保留有擴(kuò)展名。它同時也支持文件日期和時間屬性,為每個文件保留了文件創(chuàng)建的日期/時間、文件

18、最近被修改的日期/時間和文件最近被打開的日期/時間這3個日期/時間戳。Windows XP的VFAT文件系統(tǒng)和下面將要提到的NT文件系統(tǒng)(NTFS)和高性能文件系統(tǒng)(HPFS)都支持長文件名。24 七月 2022 3.Windows NT文件系統(tǒng)(NTFS) NTFS是英文new technology file system的縮寫,是一種具有較好容錯性和安全性的全新文件系統(tǒng)。NTFS 是以簇作為磁盤空間分配和回收的基本單位。一個文件總是占用存儲空間里的整數(shù)個簇。 NTFS按照簇的尺寸來劃分文件的虛擬空間,這樣形成的順序號,稱為虛擬簇號(virtual cluster number,VCN);把

19、整個卷中所有的簇從頭到尾進(jìn)行順序編號,稱為邏輯簇號(logical cluster number,LCN) 。24 七月 2022文件VCN和LCN的關(guān)系示意圖24 七月 2022 NTFS 把卷上的磁盤存儲區(qū)分成兩個部分,其中大約 12%的空間(以簇為單位)分配給主控文件表(master file table,MFT)使用,余下88%的空間被分配用于存儲各種文件。NTFS 的磁盤卷結(jié)構(gòu)24 七月 2022 4.高性能文件系統(tǒng) OS/2的高性能文件系統(tǒng)(HPFS)主要克服了FAT文件系統(tǒng)不適合于高檔操作系統(tǒng)這一缺點,HPFS支持長文件名,比FAT文件系統(tǒng)有更強(qiáng)的糾錯能力。Windows XP也

20、支持HPFS,使得從OS/2到Windows XP的過渡更為容易。HPFS和NTFS有包括長文件名在內(nèi)的許多相同特性,但使用可靠性較差,也較低級。24 七月 2022 在NTFS里,磁盤上的所有數(shù)據(jù)都是以文件的形式出現(xiàn),即使是文件系統(tǒng)的管理信息也是以一組文件的形式存儲的,即元文件。而在16個元文件中主控文件表(MFT)是一個非常重要的元文件,它記錄著分區(qū)上每一個文件的索引,這些索引稱為文件記錄,每個文件記錄占用兩個扇區(qū)。每個文件都有一個文件記錄,包括元文件本身,而主控文件表(MFT)就是專門用來存儲文件記錄的一個元文件,在主控文件表中前16 個文件記錄總是元文件的記錄。7.3.2 NTFS的主

21、控文件表24 七月 2022 由于MFT文件本身的重要性,為了確保文件系統(tǒng)結(jié)構(gòu)的可靠性,系統(tǒng)專門為它準(zhǔn)備了一個鏡像文件($MFTMirr),也就是MFT中的第二個記錄。不過這并不是MFT的完整鏡像,而是一個小部分鏡像,一般只鏡像MFT中的前4個文件記錄。要對MFT的空間進(jìn)行管理,可以在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystem中增加一個類型為DWORD的NtfsMftZoneReservation,它的缺省值是1,其范圍是14(1表示 MFT占整個卷的12.5%,2表示占25%,3表示占37.5%,4表示占50%)。24

22、 七月 2022 NTFS中,文件存取是按簇進(jìn)行分配的,一個簇必須是物理扇區(qū)的整數(shù)倍,而且總是2的整數(shù)次方。 文件通過主控文件表(MFT)來確定其在磁盤上的存儲位置。主控文件表是一個對應(yīng)的數(shù)據(jù)庫,由一系列的文件記錄組成,卷中每一個文件都有一個文件記錄(對于大型文件還可能有多個記錄與之相對應(yīng))。 NTFS卷上的每個文件都有一個64位(bit)稱為文件引用號也稱文件索引號(file reference number)的唯一標(biāo)志。文件引用號由兩部分組成:一是文件號,二是文件順序號。7.3.3 NTFS文件和目錄的結(jié)構(gòu)24 七月 2022 NTFS的目錄只是一個簡單的文件名和文件引用號的索引,如果目錄

23、的屬性列表小于一個記錄的長度,那么該目錄的所有信息都存儲在主文件表的記錄中,對于大于記錄的目錄則使用B+樹進(jìn)行管理。主文件表中的基本文件記錄中有一個指針指向一個存儲常駐索引緩沖區(qū)中包括該目錄下所有下一級子目錄和文件的外部簇,而B+樹結(jié)構(gòu)便于大型目錄中文件和子目錄的快速查找。24 七月 2022 NTFS通過基于事務(wù)處理模式的日志記錄技術(shù),成功保證了NTFS卷的一致性,實現(xiàn)了文件系統(tǒng)的可恢復(fù)性。在 FAT 或 HPFS 上執(zhí)行 CHKDSK 時,系統(tǒng)會檢查目錄、分配表和文件表中指針的一致性;但是在 NTFS 下,系統(tǒng)會維護(hù)針對這些組件的事務(wù)日志,因此,CHKDSK只需將事務(wù)回滾到上一個提交點就可

24、以恢復(fù)文件系統(tǒng)中的一致性。事務(wù)日志方法需要的系統(tǒng)開銷是很小的。NTFS并不是直接在日志文件中存取記錄,而是通過LFS來讀寫。LFS提供了打開、寫入、向前、向后、更新等操作來幫助NTFS處理日志文件。7.3.4 NTFS對可恢復(fù)性的支持24 七月 2022 為了確保每個事務(wù)都能順利的完成或出錯時回滾到上一狀態(tài),對于每個事務(wù)NTFS都會執(zhí)行以下步驟: (1)把此次事務(wù)中的子操作記錄到已緩存在內(nèi)存的日志文件里。(2)把實際的子操作數(shù)據(jù)記錄到內(nèi)存中。(3)在緩存于內(nèi)存的日志文件里把此次事務(wù)標(biāo)記為已提交。(4)把日志寫入磁盤。(5)把數(shù)據(jù)寫入磁盤。24 七月 2022 當(dāng)系統(tǒng)發(fā)生錯誤時,NTFS的日志中

25、有足夠的信息去完成或中斷任何出問題的事務(wù)。執(zhí)行恢復(fù)操作的時候,NTFS重做日志里每一個標(biāo)記為提交的事務(wù);然后文件系統(tǒng)在日志中查找那些在上一次系統(tǒng)崩潰時沒有提交的事務(wù),把這些事務(wù)的子操作撤銷掉。因為NTFS在任何數(shù)據(jù)變動寫入硬盤之前已經(jīng)把這些變動的日志先寫入了硬盤,所以NTFS擁有那些在恢復(fù)過程中需要回滾的子操作的所有的有效信息。24 七月 2022 1. Windows XP I/O系統(tǒng)的結(jié)構(gòu) 如下圖所示為Windows XP I/O系統(tǒng)的組件示意圖。它由I/O系統(tǒng)服務(wù)、I/O管理程序以及各種驅(qū)動程序(文件系統(tǒng)的和設(shè)備的)等組成。7.4.1 Windows XP的設(shè)備管理綜述7.4 Windo

26、ws XP的設(shè)備管理24 七月 2022 (1)應(yīng)用程序,通過應(yīng)用程序的編程接口(API),進(jìn)入執(zhí)行體。 (2)“I/O系統(tǒng)服務(wù)”組件是處于核心態(tài)下的系統(tǒng)調(diào)用的集合。它們把用戶對I/O的請求傳遞給I/O管理程序,使之能夠最終完成下層的I/O處理。 (3)“I/O管理程序” 的工作是建立起代表I/O操作的I/O請求包(I/O request packet,IRP),并把IRP傳送給相應(yīng)的驅(qū)動程 序。在 I/O操作完成后,清除IRP。 (4)各個驅(qū)動程序組件接收IRP,執(zhí)行指定的操作。在完成操作后,負(fù)責(zé)把IRP傳回I/O管理程序,或者通過I/O管理程序,再把IRP傳送到另一個驅(qū)動程序,以求得到更進(jìn)

27、一步的 I/O處理。24 七月 2022 2.設(shè)備驅(qū)動程序 1)Windows XP設(shè)備驅(qū)動程序的功能 設(shè)備驅(qū)動程序是設(shè)備相關(guān)代碼的集合,每類設(shè)備有一個設(shè)備驅(qū)動程序。Windows XP設(shè)備驅(qū)動程序接收I/O管理器傳來的命令,對相應(yīng)設(shè)備進(jìn)行管理,在命令完成后通知I/O管理器。設(shè)備驅(qū)動程序經(jīng)常通過I/O管理器向共享設(shè)備控制接口的其他設(shè)備驅(qū)動程序轉(zhuǎn)發(fā)命令。24 七月 2022 2)Windows XP設(shè)備驅(qū)動程序的存在形式和結(jié)構(gòu) Windows XP驅(qū)動程序常以擴(kuò)展名為sys的文件形式存在(此類型的文件不能用文本形式編輯)。每個設(shè)備對應(yīng)一個或多個sys文件。這些文件存放在C:WINDOWSsyst

28、em32drivers及C:Program Files目錄下。 例如,在C:WINDOWSsystem32drivers目錄下可以看到文件系統(tǒng)驅(qū)動程序ntfs.sys、fastfat.sys、udfa.sys、cdfs.sys等,Windows硬盤驅(qū)動程序disk.sys等。24 七月 20223)Windows XP設(shè)備驅(qū)動程序的分類 Windows XP設(shè)備驅(qū)動程序有多種類型和多種分類角度。 (1)從權(quán)限級別方面可以分為用戶方式驅(qū)動程序和核心方式驅(qū)動程 序。 (2)在WDM模型(Windows driver model)中,劃分為總線驅(qū)動程序(bus driver)、功能驅(qū)動程序(func

29、tion driver)、過濾器驅(qū)動程序(filter driver)等。(3)從硬件支持方面可將驅(qū)動程序分為類驅(qū)動程序(class driver)、端口驅(qū)動程序(port driver)、小端口驅(qū)動程序(miniport driver)等。24 七月 2022 4)Windows XP設(shè)備驅(qū)動程序的分層 Windows XP對不同的設(shè)備采用不同的驅(qū)動程序分層結(jié)構(gòu)。對于簡單的字符型設(shè)備(如鼠標(biāo)、顯示器、鍵盤、打印機(jī)), 大都使用單層設(shè)備驅(qū)動程序結(jié)構(gòu)來完成用戶的 I/O 請求。I/O管理程序直接把I/O請求發(fā)送給有關(guān)的設(shè)備系統(tǒng)驅(qū)動程序進(jìn)行處理。 大容量的設(shè)備(如磁盤、磁帶等)總是使用多層驅(qū)動程序

30、結(jié) 構(gòu)。I/O請求先是由I/O管理程序發(fā)送給文件系統(tǒng)驅(qū)動程序,經(jīng)過這一層處理后,才由I/O管理程序發(fā)送給設(shè)備驅(qū)動程序,由它最后完成I/O操作。 24 七月 2022Windows XP I/O驅(qū)動程序的分層24 七月 2022 1.同步I/O操作與異步I/O操作 同步I/O操作即是指用戶線程發(fā)出一個I/O請求后,將該請求交給I/O系統(tǒng)去處理,自己則處于等待服務(wù)完成的狀態(tài)。I/O管理器接收請求后,通過調(diào)用相應(yīng)的設(shè)備驅(qū)動程序,完成數(shù)據(jù)處理,并將結(jié)果傳輸給等待線程。 在采用同步I/O操作方式時,I/O操作完成在先,控制返回線程在后。7.4.2 Windows XP單層驅(qū)動的I/O處理24 七月 2022 異步I/O操作指在用戶線

溫馨提示

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

評論

0/150

提交評論