Windows操作系統(tǒng)體系結(jié)構(gòu)一PPT課件_第1頁
Windows操作系統(tǒng)體系結(jié)構(gòu)一PPT課件_第2頁
Windows操作系統(tǒng)體系結(jié)構(gòu)一PPT課件_第3頁
Windows操作系統(tǒng)體系結(jié)構(gòu)一PPT課件_第4頁
Windows操作系統(tǒng)體系結(jié)構(gòu)一PPT課件_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,第二章 Windows操作系統(tǒng) 的體系結(jié)構(gòu)(上),操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì) Windows操作系統(tǒng)設(shè)計(jì)模型 Windows的體系結(jié)構(gòu),2,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),操作系統(tǒng)設(shè)計(jì)有著不同于一般應(yīng)用系統(tǒng)設(shè)計(jì)的特征: 復(fù)雜程度高 研制周期長(zhǎng) 正確性難以保證 解決途徑: 良好的操作系統(tǒng)結(jié)構(gòu) 先進(jìn)的開發(fā)方法和工程化的管理方法 高效的開發(fā)工具,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),3,操作系統(tǒng)的設(shè)計(jì)目標(biāo),可靠性:正確性和健壯性 高效性:提高系統(tǒng)的運(yùn)行效率 易維護(hù)性:易讀、易擴(kuò)充、易剪裁、易修改性 易移植性:一次開發(fā),多處使用 安全性:計(jì)算機(jī)軟件系統(tǒng)安全性的基礎(chǔ) 可適應(yīng)性 簡(jiǎn)明性,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),4,Windows的設(shè)計(jì)目標(biāo),總原則:市

2、場(chǎng)需求 驅(qū)動(dòng) 設(shè)計(jì)目標(biāo) 需求: 提供一個(gè)真32位搶占式可重入的虛擬內(nèi)存操作系統(tǒng) 能夠在多種硬件體系結(jié)構(gòu)和平臺(tái)上運(yùn)行 能夠在對(duì)稱多處理系統(tǒng)上運(yùn)行并具有良好的可伸縮性 優(yōu)秀的分布式計(jì)算平臺(tái),既可作為網(wǎng)絡(luò)客戶,又可作為網(wǎng)絡(luò)服務(wù)器 可運(yùn)行多數(shù)現(xiàn)有16位MS-DOS和Microsoft Windows 3.1 應(yīng)用程序 符合政府對(duì)符合POSLX 1003.1的要求 符合政府和企業(yè)對(duì)操作系統(tǒng)安全性的要求 支持Unicode,適應(yīng)全球市場(chǎng)的需要,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),5,可擴(kuò)充性當(dāng)市場(chǎng)需求變化時(shí),代碼必須易于擴(kuò)充改動(dòng) 可移植性系統(tǒng)必須能夠在多種硬件體系結(jié)構(gòu)中運(yùn)行和相對(duì)簡(jiǎn)單地移入新的體系結(jié)構(gòu) 可靠性及健壯性系統(tǒng)能

3、防止內(nèi)部故障及外部侵?jǐn)_造成的損害,應(yīng)用程序不應(yīng)該損害操作系統(tǒng)及正在運(yùn)行的其他應(yīng)用程序 兼容性用戶界面和API應(yīng)與已有的Windows 版本兼容 性能系統(tǒng)應(yīng)該在每一種硬件平臺(tái)上盡可能快地響應(yīng),Windows的設(shè)計(jì)目標(biāo),操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),6,操作系統(tǒng)的設(shè)計(jì)階段,功能設(shè)計(jì):操作系統(tǒng)應(yīng)具備哪些功能 算法設(shè)計(jì):選擇和設(shè)計(jì)滿足系統(tǒng)功能的算法和策略,并分析和估算其效能 結(jié)構(gòu)設(shè)計(jì):選擇合適的操作系統(tǒng)結(jié)構(gòu) 按照系統(tǒng)的功能和特性要求,選擇合適的結(jié)構(gòu),使用相應(yīng)的結(jié)構(gòu)設(shè)計(jì)方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結(jié)構(gòu)清晰、簡(jiǎn)單、可靠、易讀、易修改,而且使用方便,適應(yīng)性強(qiáng),操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),7,操作系統(tǒng)結(jié)構(gòu),操作系統(tǒng)

4、結(jié)構(gòu)設(shè)計(jì),操作系統(tǒng)是一種大型軟件, 為了研制操作系統(tǒng),必須分析它的體系結(jié)構(gòu)-也就是要弄清楚如何把這一大型軟件劃分成若干較小的模塊以及這些模塊間有著怎樣的接口。,模塊組合結(jié)構(gòu) 層次結(jié)構(gòu) 虛擬機(jī)結(jié)構(gòu) 微內(nèi)核結(jié)構(gòu),8,幾種常見的操作系統(tǒng)結(jié)構(gòu),模塊組合結(jié)構(gòu) 根據(jù)功能劃分系統(tǒng)中的模塊 優(yōu)點(diǎn) 結(jié)構(gòu)緊密,接口簡(jiǎn)單直接,系統(tǒng)效率高,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),9,模塊組合結(jié)構(gòu) 缺點(diǎn) 模塊間轉(zhuǎn)接隨便 數(shù)據(jù)基本上作為全程量處理 常常關(guān)中斷,系統(tǒng)的并發(fā)性難以提高,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),幾種常見的操作系統(tǒng)結(jié)構(gòu),10,層次結(jié)構(gòu) 把操作系統(tǒng)的所有功能模塊按功能的調(diào)用次序,分別排列成若干層,各層之間的模塊只能是單向依賴或單向調(diào)用的關(guān)系

5、E.W.Dijkstra的THE系統(tǒng):,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),幾種常見的操作系統(tǒng)結(jié)構(gòu),11,層次結(jié)構(gòu)的特點(diǎn) 分解成許多功能單一的模塊,各模塊之間有清晰的組織結(jié)構(gòu)和依賴關(guān)系 具有更高的可讀性和可適應(yīng)性 層次結(jié)構(gòu)是單向依賴的,上層模塊建立在下層基礎(chǔ)上 很容易增加或替換掉一層而不影響其它層次 便于修改、擴(kuò)充,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),幾種常見的操作系統(tǒng)結(jié)構(gòu),12,層次結(jié)構(gòu)的層間關(guān)系,全序 半序,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),幾種常見的操作系統(tǒng)結(jié)構(gòu),13,分層原則 為了增加操作系統(tǒng)的可適應(yīng)性,并且便于將操作系統(tǒng)移植到其它機(jī)器上,必須把與機(jī)器特點(diǎn)緊密相關(guān)的軟件,如中斷處理,輸入輸出管理等放在緊靠硬件的最低層。 為了便于操作系統(tǒng)

6、從一種操作方式轉(zhuǎn) 變到另一種操作方式,通常把多種操作方式共同使用的基本部分放在內(nèi)層,而把隨著這些操作方式而改變的部分放在外層。 為了給進(jìn)程的活動(dòng)提供必要的環(huán)境和條件,因此必須要有一部分軟件系統(tǒng)調(diào)用的各功能,來為進(jìn)程提供服務(wù),通常這些功能模塊(各系統(tǒng)調(diào)用功能)構(gòu)成操作系統(tǒng)內(nèi)核,放在系統(tǒng)的內(nèi)層。,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),幾種常見的操作系統(tǒng)結(jié)構(gòu),14,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),虛擬機(jī)結(jié)構(gòu),系統(tǒng)的核心 -虛擬機(jī)監(jiān)控程序(VM),VM/370在裸機(jī)上運(yùn)行并且具 備了多道程序功能。該系統(tǒng) 向上層提供了若干臺(tái)虛擬機(jī)。這些虛擬機(jī)僅僅是精確復(fù)制的裸機(jī)硬件, 包含:核心態(tài)用戶態(tài),IO功能,中斷,及其它真實(shí)硬件所具有的全部?jī)?nèi)容。

7、,幾種常見的操作系統(tǒng)結(jié)構(gòu),15,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),虛擬機(jī)結(jié)構(gòu),由于每臺(tái)虛擬機(jī)都與裸機(jī)相同,所以每臺(tái)虛擬機(jī)可以運(yùn)行一臺(tái)裸機(jī)所能夠運(yùn)行的任何類型操作系統(tǒng)。,會(huì)話監(jiān)控系統(tǒng)(CMS) 程序在執(zhí)行系統(tǒng)調(diào)用時(shí),它的系統(tǒng)調(diào)用陷入其虛擬機(jī)中的操作系統(tǒng)。然后CMS發(fā)出硬件IO指令,在虛擬機(jī)者執(zhí)行為該系統(tǒng)調(diào)用所需的其它操作。這些IO指令被VM370捕獲,作為對(duì)真實(shí)硬件模擬的一部分,VM370隨后就執(zhí)行這些指令。,幾種常見的操作系統(tǒng)結(jié)構(gòu),16,微內(nèi)核結(jié)構(gòu),CMU的Mach、早期的Windows NT 非常適宜于應(yīng)用在網(wǎng)絡(luò)環(huán)境下,應(yīng)用于分布式處理的計(jì)算環(huán)境中 由兩大部分組成 : “微”內(nèi)核 服務(wù)進(jìn)程,操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

8、,幾種常見的操作系統(tǒng)結(jié)構(gòu),17,微內(nèi)核 運(yùn)行在核心態(tài)的內(nèi)核提供所有操作系統(tǒng)基本都具有的那些操作,包括線程調(diào)度、虛擬存儲(chǔ)、消息傳遞、設(shè)備驅(qū)動(dòng)以及內(nèi)核的原語操作集和中斷處理等。這些部分通常采用層次結(jié)構(gòu)并且只提供了一個(gè)很小的功能集合,通常稱為微內(nèi)核。,微內(nèi)核結(jié)構(gòu),操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),服務(wù)進(jìn)程 運(yùn)行在用戶態(tài)的并以客戶/服務(wù)器方式運(yùn)行的進(jìn)程。操作系統(tǒng)所有的其它部分被分成若干個(gè)相對(duì)獨(dú)立的服務(wù)進(jìn)程,提供各種系統(tǒng)功能、文件系統(tǒng)服務(wù)以及網(wǎng)絡(luò)服務(wù)等??蛻暨M(jìn)程與服務(wù)器進(jìn)程之間使用消息進(jìn)行通信。,幾種常見的操作系統(tǒng)結(jié)構(gòu),18,主要優(yōu)點(diǎn) 機(jī)制與策略分離 機(jī)制(mechanism)-任務(wù)在系統(tǒng)中完成的方法 策略(polic

9、y)-決定應(yīng)該執(zhí)行哪個(gè)任務(wù),何時(shí)執(zhí)行等等 可靠 靈活 適合分布式計(jì)算的需求 缺點(diǎn) 效率較低,微內(nèi)核結(jié)構(gòu),操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì),幾種常見的操作系統(tǒng)結(jié)構(gòu),19,Windows操作系統(tǒng)設(shè)計(jì)模型,融合了分層操作系統(tǒng)和微內(nèi)核操作系統(tǒng)的設(shè)計(jì)思想 Windows通過硬件機(jī)制實(shí)現(xiàn)了核心態(tài)以及用戶態(tài)兩個(gè)特權(quán)級(jí)別。對(duì)性能影響很大的操作系統(tǒng)組件運(yùn)行在核心態(tài)。核心內(nèi)沒有保護(hù)。 設(shè)計(jì)充分體現(xiàn)了機(jī)制與策略分離的思想,20,Windows的核心態(tài)組件使用了面向?qū)ο蟮脑O(shè)計(jì)原則 出于可移植性以及效率因素的考慮,大部分代碼使用了基于C語言的對(duì)象實(shí)現(xiàn)。 Windows的很多系統(tǒng)服務(wù)運(yùn)行在核心態(tài),這使得Windows更加高效,而且也是相

10、當(dāng)穩(wěn)定的。,Windows操作系統(tǒng)設(shè)計(jì)模型,Windows操作系統(tǒng)設(shè)計(jì)模型,21,可移植性的獲得,兩種手段 分層的設(shè)計(jì)。依賴于處理器體系結(jié)構(gòu)或平臺(tái)的系統(tǒng)底層部分被隔離在單獨(dú)的模塊之中,系統(tǒng)的高層可以被屏蔽在千差萬別的硬件平臺(tái)之外。提供操作系統(tǒng)可移植性的兩個(gè)關(guān)鍵組件是HAL和內(nèi)核。依賴于體系結(jié)構(gòu)的功能在內(nèi)核中實(shí)現(xiàn),在相同體系結(jié)構(gòu)中,因計(jì)算機(jī)而異的功能在HAL中實(shí)現(xiàn)。 Windows大量使用高級(jí)語言執(zhí)行體、設(shè)備驅(qū)動(dòng)程序等用C語言編寫,圖形用戶界面用C+編寫。只有那些必須和系統(tǒng)硬件直接通信的操作系統(tǒng)部分,或性能極度敏感的部分是用匯編語言編寫的。匯編語言代碼分布集中且少。,Windows操作系統(tǒng)設(shè)計(jì)模

11、型,Windows操作系統(tǒng)設(shè)計(jì)模型,22,對(duì)稱多處理支持,非對(duì)稱多處理(Asymmetric Multiprocessing, ASMP):又稱主從模式(Master-slave mode)。 主處理器:只有一個(gè),運(yùn)行OS。管理整個(gè)系統(tǒng)的資源,為從處理器分配任務(wù); 從處理器:可有多個(gè),執(zhí)行應(yīng)用程序或I/O處理。 特點(diǎn):不同性質(zhì)任務(wù)的負(fù)載不均,可靠性不夠高,不易移植(通常要求硬件也是非對(duì)稱的)。 對(duì)稱多處理(Symmetric Multiprocessing, SMP): 操作系統(tǒng)交替在各個(gè)處理器上執(zhí)行。任務(wù)負(fù)載較為平均,性能調(diào)節(jié)容易傻瓜式,Windows操作系統(tǒng)設(shè)計(jì)模型,Windows操作系統(tǒng)

12、設(shè)計(jì)模型,23,對(duì)稱多處理支持,Windows操作系統(tǒng)設(shè)計(jì)模型,Windows操作系統(tǒng)設(shè)計(jì)模型,24,Windows操作系統(tǒng)設(shè)計(jì)模型,對(duì)稱多處理支持,Windows操作系統(tǒng)設(shè)計(jì)模型,Windows是一個(gè)支持SMP的操作系統(tǒng),操作系統(tǒng)本身和用戶線程可以在任何處理器上運(yùn)行不存在主處理器 不同版本支持的處理器數(shù)目不同: Professional2 Server4 Advanced Server8 Datacenter Server32,25,Windows的體系結(jié)構(gòu),系統(tǒng)支持 進(jìn)程,服務(wù)進(jìn)程,用戶程序,環(huán)境子系統(tǒng),子系統(tǒng)動(dòng)態(tài)鏈接庫,執(zhí)行體,內(nèi)核,設(shè)備驅(qū)動(dòng)程序,硬件抽象層(HAL),窗口與圖形,26,

13、硬件抽象層(HAL),HAL=Hardware Abstraction Layer HAL是一個(gè)核心態(tài)模塊(HAL.DLL),它為運(yùn)行Windows的硬件平臺(tái)提供低級(jí)接口。,HAL隱藏各種與硬件有關(guān)的細(xì)節(jié),例如I/O接口、中斷控制器以及多處理器通信機(jī)制等 實(shí)現(xiàn)多種硬件平臺(tái)上的可移植性,Windows操作系統(tǒng)體系結(jié)構(gòu),27,硬件抽象層(HAL),在Windows發(fā)行介質(zhì)上有許多HAL: Hal.dll標(biāo)準(zhǔn)PC Halsmp.dll多處理器PC Halsp.dllCompaq SystemPro 安裝時(shí)根據(jù)硬件平臺(tái)選擇的模塊復(fù)制到系統(tǒng)中,并改名為Hal.dll,Windows操作系統(tǒng)體系結(jié)構(gòu),28

14、,硬件抽象層(HAL),為了維護(hù)可移植性,Windows內(nèi)部組件和用戶編寫的設(shè)備驅(qū)動(dòng)程序并不直接訪問硬件,而是通過調(diào)用Hal.dll中的例程。 READ_PORT_XXX WRITE_PORT_XXX READ_PORT_BUFFER_XXX WRITE_PORT_ BUFFER_XXX READ_REGISTER_XXX WRITE_ REGISTER_XXX READ_ REGISTER_BUFFER_XXX WRITE_ REGISTER_ BUFFER_XXX XXXUCHAR、USHORT、ULONG,讀(寫)I/O端口 從連續(xù)的I/O端口讀 (寫)一組數(shù)據(jù) 讀(寫)內(nèi)存映射 的設(shè)備

15、寄存器,Windows操作系統(tǒng)體系結(jié)構(gòu),29,設(shè)備驅(qū)動(dòng)程序,可加載的核心態(tài)模塊 I/O系統(tǒng)和相關(guān)硬件之間的接口 WDM=Windows Driver Model,設(shè)備驅(qū)動(dòng)程序的分類 硬件設(shè)備驅(qū)動(dòng)程序操作硬件。 文件系統(tǒng)驅(qū)動(dòng)程序接受面向文件的I/O請(qǐng)求,并把它們轉(zhuǎn)化為對(duì)特殊設(shè)備的I/O請(qǐng)求。 過濾器驅(qū)動(dòng)程序截取I/O并在傳遞I/O到下一層之前執(zhí)行某些特定處理。,Windows操作系統(tǒng)體系結(jié)構(gòu),30,內(nèi)核,NTOSKRNL.EXE的下層 內(nèi)核是對(duì)處理器體系結(jié)構(gòu)的抽象,將執(zhí)行體與處理器體系結(jié)構(gòu)的差異相隔離,保證系統(tǒng)的可移植性。大多數(shù)代碼用C編寫,部分依賴于硬件體系結(jié)構(gòu)的代碼用匯編編寫 功能 線程安排

16、和調(diào)度 陷阱處理和異常調(diào)度 中斷處理和調(diào)度 多處理器同步 供執(zhí)行體使用的基本內(nèi)核對(duì)象 始終運(yùn)行在核心態(tài),代碼精簡(jiǎn),可移植性好。除了中斷服務(wù)例程,正在運(yùn)行的線程不能搶先內(nèi)核。,Windows操作系統(tǒng)體系結(jié)構(gòu),31,內(nèi)核對(duì)象 內(nèi)核實(shí)現(xiàn)了一組簡(jiǎn)單的對(duì)象,稱為內(nèi)核對(duì)象,以幫助內(nèi)核控制中心處理并支持執(zhí)行體對(duì)象的創(chuàng)建。 控制對(duì)象包括異步過程調(diào)用(APC,asynchronous procedure call)對(duì)象、延遲過程調(diào)用(DPC,deferred procedure call)對(duì)象和幾個(gè)由I/O系統(tǒng)使用的對(duì)象,例如中斷對(duì)象。 調(diào)度程序?qū)ο筘?fù)責(zé)同步操作并影響線程調(diào)度。調(diào)度程序?qū)ο蟀▋?nèi)核線程、互斥體(

17、Mutex)、事件(Event)、內(nèi)核事件對(duì)、信號(hào)量(Semaphore)、定時(shí)器和可等待定時(shí)器,內(nèi)核,Windows操作系統(tǒng)體系結(jié)構(gòu),32,硬件支持 使得執(zhí)行體和設(shè)備驅(qū)動(dòng)程序同硬件無關(guān) 實(shí)現(xiàn)手段:一組在多個(gè)體系結(jié)構(gòu)上可移植的、同語義的接口 內(nèi)核也有部分代碼不具有移植性 支持虛擬8086模式的代碼,用以運(yùn)行一些古老的16位DOS程序 高速緩存管理 描述表切換,內(nèi)核,Windows操作系統(tǒng)體系結(jié)構(gòu),33,執(zhí)行體,Windows操作系統(tǒng)體系結(jié)構(gòu),執(zhí)行體(Executive)是NTOSKRNL.EXE的上層 執(zhí)行體應(yīng)該從兩種角度來理解: 1.執(zhí)行體提供了一組函數(shù)調(diào)用 2.執(zhí)行體本身由若干組件組成,3

18、4,執(zhí)行體,提供的函數(shù)調(diào)用 從用戶態(tài)導(dǎo)出并且可以調(diào)用的函數(shù)。這些函數(shù)的接口在NTDLL.DLL中。通過Win32API或一些其他的環(huán)境子系統(tǒng)可以對(duì)它們進(jìn)行訪問。 從用戶態(tài)導(dǎo)出并且可以調(diào)用的函數(shù),但當(dāng)前通過任何文檔化的子系統(tǒng)函數(shù)都不能使用。 在Windows DDK中已經(jīng)導(dǎo)出并且文檔化的核心態(tài)調(diào)用的函數(shù)。 在核心態(tài)組件中調(diào)用但沒有文檔化的函數(shù)。例如在執(zhí)行體內(nèi)部使用的內(nèi)部支持例程。 組件內(nèi)部的函數(shù)。,Windows操作系統(tǒng)體系結(jié)構(gòu),35,包含的功能實(shí)體 進(jìn)程和線程管理器創(chuàng)建及中止進(jìn)程和線程。對(duì)進(jìn)程和線程的基本支持在Windows 2000內(nèi)核中實(shí)現(xiàn),而執(zhí)行體給這些低級(jí)對(duì)象添加附加語義和功能。 虛擬

19、內(nèi)存管理器實(shí)現(xiàn)“虛擬內(nèi)存”。內(nèi)存管理器也為高速緩存管理器提供基本的支持。 安全引用監(jiān)視器在本地計(jì)算機(jī)上執(zhí)行安全策略。它保護(hù)了操作系統(tǒng)資源,執(zhí)行運(yùn)行時(shí)對(duì)象的保護(hù)和監(jiān)視。 I/O管理器執(zhí)行獨(dú)立于設(shè)備的輸入/輸出,并進(jìn)一步處理調(diào)用適當(dāng)?shù)脑O(shè)備驅(qū)動(dòng)程序。 高速緩存管理器通過將最近引用的磁盤數(shù)據(jù)駐留在主內(nèi)存中來提高文件I/O的性能,并且通過在把更新數(shù)據(jù)發(fā)送到磁盤之前將它們?cè)趦?nèi)存中保持一個(gè)短的時(shí)間來延緩磁盤的寫操作,這樣就可以實(shí)現(xiàn)快速訪問。,Windows 2000/XP操作系統(tǒng)體系結(jié)構(gòu),執(zhí)行體,36,對(duì)象管理器:創(chuàng)建、管理以及刪除Windows的執(zhí)行體對(duì)象和用于代表操作系統(tǒng)資源的抽象數(shù)據(jù)類型,例如進(jìn)程、線

20、程和各種同步對(duì)象。 本地過程調(diào)用(LPC,Local Procedure Call)機(jī)制,在同一臺(tái)計(jì)算機(jī)上的客戶進(jìn)程和服務(wù)進(jìn)程之間傳遞信息。LPC是一個(gè)靈活的、經(jīng)過優(yōu)化的“遠(yuǎn)程過程調(diào)用”(RPC,Remote Procedure Call)版本。 一組廣泛的公用運(yùn)行時(shí)函數(shù),例如字符串處理、算術(shù)運(yùn)算、數(shù)據(jù)類型轉(zhuǎn)換和完全結(jié)構(gòu)處理。 執(zhí)行體支持例程,例如系統(tǒng)內(nèi)存分配(頁交換區(qū)和非頁交換區(qū))、互鎖內(nèi)存訪問和兩種特殊類型的同步對(duì)象:資源和快速互斥體。,執(zhí)行體,包含的功能實(shí)體,Windows操作系統(tǒng)體系結(jié)構(gòu),37,NTDLL,子系統(tǒng)動(dòng)態(tài)鏈接庫 功能 提供系統(tǒng)調(diào)用入口 為子系統(tǒng)、子系統(tǒng)動(dòng)態(tài)鏈接庫、及其他本機(jī)

21、映像提供內(nèi)部支持函數(shù) NTDLL也包含許多支持函數(shù),例如映像加載程序、堆管理器和Win32子系統(tǒng)進(jìn)程通信函數(shù)以及通用運(yùn)行庫。 用戶態(tài)異步過程調(diào)用(APC)調(diào)度器和異常調(diào)度器。,Windows操作系統(tǒng)體系結(jié)構(gòu),38,環(huán)境子系統(tǒng),將基本的執(zhí)行體系統(tǒng)服務(wù)的某些子集以特定的形態(tài)展示給應(yīng)用程序 三種環(huán)境子系統(tǒng):POSIX、OS/2和Win32(OS/2 只能用于x86系統(tǒng)),Win32子系統(tǒng)必須始終處于運(yùn)行狀態(tài),其他兩個(gè)子系統(tǒng)只是在需要時(shí)才被啟動(dòng),Win32子系統(tǒng)是Windows運(yùn)行的基本條件之一。 函數(shù)調(diào)用不能在不同子系統(tǒng)之間混用,因此每一個(gè)可執(zhí)行的映像都受限于唯一的子系統(tǒng),Windows操作系統(tǒng)體系

22、結(jié)構(gòu),39,Win32子系統(tǒng) Win32環(huán)境子系統(tǒng)進(jìn)程(CSRSS.EXE): 包括對(duì)下列功能的支持:控制臺(tái)(文本)窗口、創(chuàng)建及刪除進(jìn)程與線程、支持16位DOS虛擬機(jī)(VDM)進(jìn)程的部分。 Win32子系統(tǒng)動(dòng)態(tài)鏈接庫(User32.dll、Kernel32.dll、GDI32.dll),將文檔化的Win32 API函數(shù)轉(zhuǎn)化為適當(dāng)?shù)姆俏臋n化的核心系統(tǒng)服務(wù)(調(diào)用NTOSKRNL.EXE和WIN32.SYS) 核心態(tài)設(shè)備驅(qū)動(dòng)程序(WIN32K.SYS): 窗口管理器(User): 控制窗口顯示,管理屏幕輸出,實(shí)現(xiàn)用戶界面 圖形設(shè)備接口(GDI,Graphics Device Interfaces)

23、圖形設(shè)備驅(qū)動(dòng)程序,包括依賴于硬件的圖形顯示驅(qū)動(dòng)程序、打印機(jī)驅(qū)動(dòng)程序和視頻小型端口驅(qū)動(dòng)程序。,環(huán)境子系統(tǒng),Windows操作系統(tǒng)體系結(jié)構(gòu),40,環(huán)境子系統(tǒng),Win32子系統(tǒng),Win32 應(yīng)用程序 (client),CSRSS (server),Win32子系統(tǒng)DLL,子系統(tǒng)動(dòng)態(tài)鏈接庫(NTDLL),用戶態(tài) 核心態(tài),WIN32K.SYS,LPC機(jī)制,Windows操作系統(tǒng)體系結(jié)構(gòu),41,環(huán)境子系統(tǒng),當(dāng)一個(gè)應(yīng)用程序調(diào)用子系統(tǒng)動(dòng)態(tài)鏈接庫中的函數(shù)時(shí),可能會(huì)出現(xiàn)下面三種情況之一: 函數(shù)完全在子系統(tǒng)動(dòng)態(tài)鏈接庫的用戶態(tài)部分中實(shí)現(xiàn),這時(shí)并沒有消息發(fā)送到環(huán)境子系統(tǒng)進(jìn)程,也沒有調(diào)用執(zhí)行體服務(wù)。函數(shù)在用戶態(tài)中執(zhí)行,結(jié)果返回到調(diào)用者。 例如:GetCurrentProcessId 函數(shù)需要一個(gè)或多個(gè)對(duì)執(zhí)行體函數(shù)的調(diào)用。 例如:ReadFile,由子系統(tǒng)動(dòng)態(tài)鏈接庫調(diào)用Windows 系統(tǒng)服務(wù)NtReadFile 函數(shù)要求某些工作在環(huán)境子系統(tǒng)進(jìn)程中進(jìn)行。在這種情況下,將產(chǎn)生一個(gè)客戶/服務(wù)器請(qǐng)求到環(huán)境子系統(tǒng),其中的一個(gè)消息將被發(fā)送到子系統(tǒng)去執(zhí)行某些操

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論