Windows 2000-XP的體系結(jié)構(gòu)西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院_第1頁
Windows 2000-XP的體系結(jié)構(gòu)西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院_第2頁
Windows 2000-XP的體系結(jié)構(gòu)西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院_第3頁
Windows 2000-XP的體系結(jié)構(gòu)西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院_第4頁
Windows 2000-XP的體系結(jié)構(gòu)西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Windows 2000/XP的體系結(jié)構(gòu)西北工業(yè)大學(xué)計(jì)算機(jī)學(xué)院教育部-微軟精品課程資助項(xiàng)目本章要點(diǎn)操作系統(tǒng)的設(shè)計(jì)目標(biāo)操作系統(tǒng)的設(shè)計(jì)階段幾種常見的操作系統(tǒng)體系結(jié)構(gòu)范型Windows 2000/XP的操作系統(tǒng)模型Windows 2000/XP的體系結(jié)構(gòu)Windows 2000/XP的重要組成部分Windows 2000/XP的系統(tǒng)機(jī)制Windows 2000/XP注冊(cè)表、服務(wù)控制與管理機(jī)制教育部-微軟精品課程資助項(xiàng)目操作系統(tǒng)的設(shè)計(jì)問題操作系統(tǒng)設(shè)計(jì)有著不同于一般應(yīng)用系統(tǒng)設(shè)計(jì)的特征復(fù)雜程度高研制周期長正確性難以保證解決途徑良好的操作系統(tǒng)結(jié)構(gòu)先進(jìn)的開發(fā)方法和工程化的管理方法高效的開發(fā)工具 教育部-微軟精

2、品課程資助項(xiàng)目操作系統(tǒng)的設(shè)計(jì)目標(biāo)可靠性:正確性和健壯性, 主要指并發(fā)、共享及其引起的不確定性 高效性:提高系統(tǒng)的運(yùn)行效率 易維護(hù)性:易讀、易擴(kuò)充、易剪裁、易修改性 易移植性:一次開發(fā),多處使用安全性:計(jì)算機(jī)軟件系統(tǒng)安全性的基礎(chǔ) 可適應(yīng)性簡明性 目態(tài)管態(tài)用戶態(tài)管態(tài)教育部-微軟精品課程資助項(xiàng)目Windows 2000/XP的設(shè)計(jì)目標(biāo)總原則:市場需求 驅(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和Microso

3、ft Windows 3.1 應(yīng)用程序符合對(duì)POSLX 1003.1的要求符合政府和企業(yè)對(duì)操作系統(tǒng)安全性的要求支持Unicode,適應(yīng)全球市場的需要 教育部-微軟精品課程資助項(xiàng)目Windows 2000/XP的設(shè)計(jì)目標(biāo):可擴(kuò)充性 可移植性可靠性及堅(jiān)固性兼容性性能教育部-微軟精品課程資助項(xiàng)目操作系統(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) 教育部-微軟精品課程資助項(xiàng)目操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 按照系統(tǒng)的功能和特性要求,選擇合適的結(jié)構(gòu),使用相應(yīng)的結(jié)構(gòu)設(shè)計(jì)方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結(jié)構(gòu)清晰

4、、簡單、可靠、易讀、易修改,而且使用方便,適應(yīng)性強(qiáng)教育部-微軟精品課程資助項(xiàng)目操作系統(tǒng)體系結(jié)構(gòu)問題程序結(jié)構(gòu)程序結(jié)構(gòu)的兩層含義: 整體結(jié)構(gòu)、局部結(jié)構(gòu)程序的結(jié)構(gòu)良好的準(zhǔn)則軟件結(jié)構(gòu)操作系統(tǒng)體系結(jié)構(gòu)大型軟件,模塊劃分、接口定義復(fù)雜并發(fā)性,接口復(fù)雜、信息交換頻繁計(jì)算機(jī)體系結(jié)構(gòu)日益復(fù)雜,應(yīng)用擴(kuò)大、使用要求提高使得操作系統(tǒng)體系結(jié)構(gòu)日趨復(fù)雜教育部-微軟精品課程資助項(xiàng)目幾種常見的操作系統(tǒng)結(jié)構(gòu)模塊組合結(jié)構(gòu)模塊組合結(jié)構(gòu)的特點(diǎn)與適應(yīng)性模塊間轉(zhuǎn)接隨便數(shù)據(jù)基本上作為全程量處理常常關(guān)中斷,系統(tǒng)的并發(fā)性難以提高教育部-微軟精品課程資助項(xiàng)目層次結(jié)構(gòu)層次結(jié)構(gòu)設(shè)計(jì)方法的核心思想例如E.W.Dijkstra的THE系統(tǒng):12345處

5、理器分配和多道程序內(nèi)存和磁盤管理操作員進(jìn)程通信輸入/輸出管理用戶程序操作員0教育部-微軟精品課程資助項(xiàng)目分層原則與硬件相關(guān)的最底層計(jì)算機(jī)具有多操作方式多操作方式共有的基本部分放在內(nèi)層,具體操作方式相關(guān)的方在外層;OS基于進(jìn)程的概念,內(nèi)核放在內(nèi)層;內(nèi)層中又分多層,公用功能在最內(nèi)層。教育部-微軟精品課程資助項(xiàng)目層次結(jié)構(gòu)的特點(diǎn)分解成許多功能單一的模塊,各模塊之間有清晰的組織結(jié)構(gòu)和依賴關(guān)系具有更高的可讀性和可適應(yīng)性層次結(jié)構(gòu)是單向依賴的,上層模塊建立在下層基礎(chǔ)上,設(shè)計(jì)了比較可靠的基礎(chǔ)很容易增加或替換掉一層而不影響其它層次便于修改、擴(kuò)充 教育部-微軟精品課程資助項(xiàng)目層次結(jié)構(gòu)的層間關(guān)系全序:同層模塊不互相調(diào)

6、用,各層簡單向半序:有循環(huán)第3層第2層第1層第0層全序半序教育部-微軟精品課程資助項(xiàng)目進(jìn)程分層結(jié)構(gòu)實(shí)現(xiàn)代價(jià)較大:必須設(shè)立一個(gè)進(jìn)程控制塊,用以保留進(jìn)程的狀態(tài)信息,增加了內(nèi)存開銷進(jìn)程之間的控制轉(zhuǎn)移、狀態(tài)保留及信息傳送,均由核心去管理,時(shí)間消耗多,效率下降系統(tǒng)并發(fā)活動(dòng)過多,調(diào)度負(fù)擔(dān)過重,且同步操作過于分散,易于造成死鎖,影響了系統(tǒng)的安全性層次結(jié)構(gòu)的兩種類型核心教育部-微軟精品課程資助項(xiàng)目層次管程結(jié)構(gòu)進(jìn)程:并發(fā)單位類程:專用資源的抽象 管程:共享資源的抽象 一個(gè)動(dòng)態(tài)的系統(tǒng)由內(nèi)核和一組有限個(gè)滿足規(guī)定調(diào)用關(guān)系的進(jìn)程P、類程C和管程M構(gòu)成。其中進(jìn)程是系統(tǒng)中唯一能動(dòng)的成份,管程和類程都是被動(dòng)成份 教育部-微軟

7、精品課程資助項(xiàng)目優(yōu)點(diǎn)采用層次管程結(jié)構(gòu)的系統(tǒng)結(jié)構(gòu)清晰、統(tǒng)一同步操作相對(duì)集中,系統(tǒng)安全性較高用高級(jí)語言書寫程序,研制周期短,通過編譯技術(shù)獲取更高的靈活性和效率只用一種概念描述并發(fā),減少了不必要的并行性,減少了系統(tǒng)開銷。缺點(diǎn):管程嵌套問題比較難于高效的解決不便于管理多個(gè)資源和全局性資源 教育部-微軟精品課程資助項(xiàng)目虛擬機(jī)結(jié)構(gòu) 如IBM大型機(jī)上的系列操作系統(tǒng)基本思想:系統(tǒng)應(yīng)該提供多道程序能力及一個(gè)比裸機(jī)有更方便擴(kuò)展界面的計(jì)算機(jī) 。但二者的實(shí)現(xiàn)應(yīng)相互獨(dú)立特點(diǎn)虛擬機(jī)概念可以實(shí)現(xiàn)完全保護(hù)用軟件從硬件逐層擴(kuò)展虛擬機(jī)方法把多道程序和擴(kuò)展機(jī)器的功能完全分開,使每一部分都簡單、靈活,更易于維護(hù)。 教育部-微軟精品課

8、程資助項(xiàng)目370裸機(jī)VM/370CMSCMSCMS系統(tǒng)調(diào)用陷入I/O指令陷入若干個(gè)370虛擬機(jī)CMS: 會(huì)話監(jiān)控系統(tǒng)教育部-微軟精品課程資助項(xiàng)目微內(nèi)核(客戶/服務(wù)器結(jié)構(gòu))CMU的Mach、早期的Windows NT非常適宜于應(yīng)用在網(wǎng)絡(luò)環(huán)境下,應(yīng)用于分布式處理的計(jì)算環(huán)境中 由下面兩大部分組成運(yùn)行在核心態(tài)的“微”內(nèi)核用戶態(tài),以C/S模式運(yùn)行的若干進(jìn)程,通過內(nèi)核進(jìn)行通信主要特點(diǎn)機(jī)制(內(nèi)核)與策略(服務(wù)進(jìn)程)分離比較徹底可靠靈活適合分布式計(jì)算的需求缺點(diǎn):效率較低教育部-微軟精品課程資助項(xiàng)目其它體系結(jié)構(gòu)外展式核心(Exokernels)這種觀點(diǎn)認(rèn)為操作系統(tǒng)應(yīng)該只負(fù)責(zé)在競爭的用戶之間安全、有效的分配計(jì)算資

9、源 傳統(tǒng)操作系統(tǒng)的絕大部分功能應(yīng)該在系統(tǒng)庫中以可選的方式鏈接進(jìn)用戶程序可擴(kuò)展系統(tǒng)可擴(kuò)展系統(tǒng)認(rèn)為應(yīng)該將盡可能多的模塊以一種受保護(hù)的方式放進(jìn)核心當(dāng)中。操作系統(tǒng)的構(gòu)造者可以先構(gòu)造從一個(gè)只包含稍微多于核心保護(hù)機(jī)制的一個(gè)最小核心。而其它的功能則通過不斷的往核心中添加受保護(hù)的模塊實(shí)現(xiàn)。 教育部-微軟精品課程資助項(xiàng)目2.2 Windows 2000/XP系統(tǒng)模型融合了分層操作系統(tǒng)和微內(nèi)核操作系統(tǒng)的設(shè)計(jì)思想,使用面向?qū)ο蟮姆治雠c設(shè)計(jì),采用整體式的實(shí)現(xiàn)Windows 2000/XP通過硬件機(jī)制實(shí)現(xiàn)了核心態(tài)以及用戶態(tài)兩個(gè)特權(quán)級(jí)別 。對(duì)性能影響很大的操作系統(tǒng)組件運(yùn)行在核心態(tài)。核心內(nèi)沒有保護(hù)。Windows 2000

10、/XP的核心態(tài)組件使用了面向?qū)ο笤O(shè)計(jì)原則出于可移植性以及效率因素的考慮,大部分代碼使用了基于C語言的對(duì)象實(shí)現(xiàn)。Windows 2000/XP的很多系統(tǒng)服務(wù)運(yùn)行在核心態(tài),這使得Windows 2000/XP更加高效,而且也是相當(dāng)穩(wěn)定的。教育部-微軟精品課程資助項(xiàng)目系統(tǒng)支持進(jìn)程服務(wù)進(jìn)程用戶程序環(huán)境子系統(tǒng)子系統(tǒng)動(dòng)態(tài)鏈接庫圖形引擎執(zhí)行體核心設(shè)備驅(qū)動(dòng)HAL用戶態(tài)核心態(tài)Windows 2000/XP的構(gòu)成教育部-微軟精品課程資助項(xiàng)目用戶態(tài)組件系統(tǒng)支持進(jìn)程(system support process),不是Windows 2000/XP服務(wù),不由服務(wù)控制器啟動(dòng)。服務(wù)進(jìn)程(service process),

11、Windows 2000/XP的服務(wù)。環(huán)境子系統(tǒng)(enviroment subsystems),它們向應(yīng)用程序提供操作系統(tǒng)功能調(diào)用接口包括:Win32、POSIX和OS/2 1.2。應(yīng)用程序(user applications),五種類型:Win32、Windows 3.1、MS-DOS、POSIX 或OS/2 1.2。 子系統(tǒng)動(dòng)態(tài)鏈接庫:調(diào)用層轉(zhuǎn)換和映射教育部-微軟精品課程資助項(xiàng)目核心態(tài)組件核心(kernel)包含了最低級(jí)的操作系統(tǒng)功能,例如線程調(diào)度、中斷和異常調(diào)度、多處理器同步等。同時(shí)它也提供了執(zhí)行體(Executive)用來實(shí)現(xiàn)高級(jí)結(jié)構(gòu)的一組例程和基本對(duì)象。執(zhí)行體包含基本的操作系統(tǒng)服務(wù),

12、例如內(nèi)存管理器、進(jìn)程和線程管理、安全控制、I/O以及進(jìn)程間的通信。硬件抽象層(HAL, Hardware Abstraction Layer)將內(nèi)核、設(shè)備驅(qū)動(dòng)程序以及執(zhí)行體同硬件分隔開來,實(shí)現(xiàn)硬件映射。設(shè)備驅(qū)動(dòng)程序(Device Drivers)包括文件系統(tǒng)和硬件設(shè)備驅(qū)動(dòng)程序等,其中硬件設(shè)備驅(qū)動(dòng)程序?qū)⒂脩舻腎/O函數(shù)調(diào)用轉(zhuǎn)換為對(duì)特定硬件設(shè)備的I/O請(qǐng)求。圖形引擎包含了實(shí)現(xiàn)圖形用戶界面(GUI,Graphical User Interface)的基本函數(shù)。 教育部-微軟精品課程資助項(xiàng)目可移植性的獲得兩種方法分層的設(shè)計(jì) 依賴于處理器體系結(jié)構(gòu)或平臺(tái)的系統(tǒng)底層部分被隔離在單獨(dú)的模塊之中,系統(tǒng)的高層可以

13、被屏蔽在千差萬別的硬件平臺(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 2000/XP大量使用高級(jí)語言執(zhí)行體、設(shè)備驅(qū)動(dòng)程序等用C語言編寫,圖形用戶界面用C+編寫。只有那些必須和系統(tǒng)硬件直接通信的操作系統(tǒng)部分,或性能極度敏感的部分是用匯編語言編寫的。匯編語言代碼分布集中且少。 教育部-微軟精品課程資助項(xiàng)目對(duì)稱多處理器支持代碼對(duì)多處理器的可伸縮性好完善的IPC和鎖機(jī)制解決資源競爭問題核心態(tài)組件代碼可重入程度極高多優(yōu)先級(jí)搶占式調(diào)度(利用系統(tǒng)陷阱調(diào)度),多數(shù)核心態(tài)組件代碼都可以被搶占由NTO

14、SKRNL.EXE屏蔽SMP硬件設(shè)置,絕大多數(shù)組件不可見、也無需關(guān)心,。教育部-微軟精品課程資助項(xiàng)目2.3 Windows 2000/XP的構(gòu)成P43 圖2-5 windows2000/xp體系結(jié)構(gòu)內(nèi)核內(nèi)核對(duì)象硬件支持硬件抽象層執(zhí)行體驅(qū)動(dòng)程序環(huán)境子系統(tǒng)與動(dòng)態(tài)鏈接庫Win32PosixOs/2Ntdll.dll系統(tǒng)支持進(jìn)程教育部-微軟精品課程資助項(xiàng)目內(nèi)核功能線程安排和調(diào)度陷阱處理和異常調(diào)度中斷處理和調(diào)度多處理器同步供執(zhí)行體使用的基本內(nèi)核對(duì)象 始終運(yùn)行在核心態(tài),代碼精簡,可移植性好。除了中斷服務(wù)例程(ISR,interrupt service routine),正在運(yùn)行的線程不能搶先內(nèi)核。教育部-

15、微軟精品課程資助項(xiàng)目內(nèi)核對(duì)象幫助控制、處理并支持執(zhí)行體對(duì)象的操作,以降低系統(tǒng)策略代價(jià)控制對(duì)象,這個(gè)對(duì)象集和包括內(nèi)核進(jìn)程對(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)核線程、互斥體(Mutex)、事件(Event)、內(nèi)核事件對(duì)、信號(hào)量(Semaphore)、定時(shí)器和可等待定時(shí)器 教育部-微軟精品課程資助項(xiàng)目內(nèi)核與硬件使得執(zhí)行體和設(shè)備驅(qū)動(dòng)程序同硬件無關(guān) 實(shí)現(xiàn)手段:一組在多個(gè)體系

16、結(jié)構(gòu)上可移植、同語義的接口內(nèi)核也有部分代碼不具有移植性支持虛擬8086模式的代碼,用以運(yùn)行一些古老的16位DOS程序高速緩存管理描述表切換教育部-微軟精品課程資助項(xiàng)目硬件抽象層(HAL)實(shí)際硬件與Windows 2000/XP抽象計(jì)算機(jī)描述的接口層和功能映射層隱藏各種與硬件有關(guān)的細(xì)節(jié),例如I/O接口、中斷控制器以及多處理器通信機(jī)制等實(shí)現(xiàn)多種硬件平臺(tái)上的可移植性教育部-微軟精品課程資助項(xiàng)目執(zhí)行體提供的功能性調(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)前通過任何文檔化的子

17、系統(tǒng)函數(shù)都不能使用。在Windows 2000 DDK中已經(jīng)導(dǎo)出并且文檔化的核心態(tài)調(diào)用的函數(shù)。在核心態(tài)組件中調(diào)用但沒有文檔化的函數(shù)。例如在執(zhí)行體內(nèi)部使用的內(nèi)部支持例程。組件內(nèi)部的函數(shù)。 教育部-微軟精品課程資助項(xiàng)目包含的功能實(shí)體進(jìn)程和線程管理器創(chuàng)建及中止進(jìn)程和線程。對(duì)進(jìn)程和線程的基本支持在Windows 2000內(nèi)核中實(shí)現(xiàn),而執(zhí)行體給這些低級(jí)對(duì)象添加附加語義和功能。虛擬內(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系統(tǒng)執(zhí)行獨(dú)立于設(shè)備的輸入/輸出,并為進(jìn)一步處理調(diào)用適當(dāng)?shù)脑O(shè)

18、備驅(qū)動(dòng)程序。高速緩存管理器通過將最近引用的磁盤數(shù)據(jù)駐留在主內(nèi)存中來提高文件I/O的性能,并且通過在把更新數(shù)據(jù)發(fā)送到磁盤之前將它們?cè)趦?nèi)存中保持一個(gè)短的時(shí)間來延緩磁盤的寫操作,這樣就可以實(shí)現(xiàn)快速訪問。 教育部-微軟精品課程資助項(xiàng)目對(duì)象管理:創(chuàng)建、管理以及刪除Windows 2000/XP的執(zhí)行體對(duì)象和用于代表操作系統(tǒng)資源的抽象數(shù)據(jù)類型,例如進(jìn)程、線程和各種同步對(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)版本。一組廣泛的

19、公用運(yùn)行時(shí)函數(shù),例如字符串處理、算術(shù)運(yùn)算、數(shù)據(jù)類型轉(zhuǎn)換和完全結(jié)構(gòu)處理。執(zhí)行體支持例程,例如系統(tǒng)內(nèi)存分配(頁交換區(qū)和非頁交換區(qū))、互鎖內(nèi)存訪問和兩種特殊類型的同步對(duì)象:資源和快速互斥體。 教育部-微軟精品課程資助項(xiàng)目設(shè)備驅(qū)動(dòng)程序可加載的核心態(tài)模塊 I/O系統(tǒng)和相關(guān)硬件之間的接口 使用WDM以及加強(qiáng)的WDM方式分類硬件設(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í)行某些特定處理。 教育部-微軟精品課程資助項(xiàng)目環(huán)境子系統(tǒng)將基本的執(zhí)行體系統(tǒng)服務(wù)的某些子集以特定的形態(tài)展示給應(yīng)用程序,函數(shù)調(diào)用不能在

20、不同子系統(tǒng)之間混用,因此每一個(gè)可執(zhí)行的映像都受限于唯一的子系統(tǒ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 2000/XP運(yùn)行的基本條件之一。教育部-微軟精品課程資助項(xiàng)目Win32子系統(tǒng)Win32環(huán)境子系統(tǒng)進(jìn)程CSRSS,包括對(duì)下列功能的支持:控制臺(tái)(文本)窗口、創(chuàng)建及刪除進(jìn)程與線程、支持16位DOS虛擬機(jī)(VDM)進(jìn)程的部分。核心態(tài)設(shè)備驅(qū)動(dòng)程序(WIN32K.SYS)。圖形設(shè)備接口(GDI,Graphics Device Interfaces)子系

21、統(tǒng)動(dòng)態(tài)鏈接庫,它調(diào)用NTOSKRNL.EXE和WIN32.SYS將文檔化的Win32 API函數(shù)轉(zhuǎn)化為適當(dāng)?shù)姆俏臋n化的核心系統(tǒng)服務(wù)。圖形設(shè)備驅(qū)動(dòng)程序,包括依賴于硬件的圖形顯示驅(qū)動(dòng)程序、打印機(jī)驅(qū)動(dòng)程序和視頻小型端口驅(qū)動(dòng)程序。其他混雜的函數(shù),如幾種自然語言支持函數(shù)。教育部-微軟精品課程資助項(xiàng)目POSIX子系統(tǒng)設(shè)計(jì)的強(qiáng)迫性目標(biāo)實(shí)現(xiàn)了POSIX.1,功能局限,用處不大Windows XP實(shí)際上并不包含POSIX子系統(tǒng)今后產(chǎn)品的POSIX/UNIX子系統(tǒng)將大大加強(qiáng)P49 圖2-7 interix的體系結(jié)構(gòu)教育部-微軟精品課程資助項(xiàng)目NTDLL主要用于子系統(tǒng)動(dòng)態(tài)鏈接庫的特殊系統(tǒng)支持庫功能提供系統(tǒng)調(diào)用入口為

22、子系統(tǒng)、子系統(tǒng)動(dòng)態(tài)鏈接庫、及其他本機(jī)映像提供內(nèi)部支持函數(shù)NTDLL也包含許多支持函數(shù),例如映像加載程序、堆管理器和Win32子系統(tǒng)進(jìn)程通信函數(shù)以及通用運(yùn)行庫。用戶態(tài)異步過程調(diào)用(APC)調(diào)度器和異常調(diào)度器。 教育部-微軟精品課程資助項(xiàng)目系統(tǒng)支持進(jìn)程Idle進(jìn)程系統(tǒng)進(jìn)程會(huì)話管理器SMSSWin32子系統(tǒng)CSRSS登錄進(jìn)程WINLOGIN本地安全身份驗(yàn)證服務(wù)器LSASS服務(wù)控制器SERVICES及其相關(guān)的服務(wù)進(jìn)程 教育部-微軟精品課程資助項(xiàng)目Windows 2000/XP的系統(tǒng)機(jī)制陷阱調(diào)度,包括中斷、延遲過程調(diào)用(DPC,Deferred Procedure Call)、異步過程調(diào)用(APC,As

23、ynchronous Procedure Call)、異常調(diào)度(Exception Dispatching)和系統(tǒng)服務(wù)調(diào)度(System Service Dispatching)執(zhí)行體對(duì)象管理器(Executive Object Manager)同步(Synchronization),包括自旋鎖(Spin lock)、內(nèi)核調(diào)度程序?qū)ο螅↘ernel Dispatcher Objects)本地過程調(diào)用(LPC,Local Procedure Call)教育部-微軟精品課程資助項(xiàng)目陷阱調(diào)度當(dāng)異?;蛑袛喟l(fā)生時(shí),硬件或軟件可以檢測到,處理器會(huì)從用戶態(tài)切換到核心態(tài),并將控制轉(zhuǎn)交給內(nèi)核的陷阱處理程序,該模

24、塊檢測異常和中斷的類型,并將控制交給處理相應(yīng)情況的代碼 異常調(diào)度程序中斷服務(wù)例程系統(tǒng)服務(wù)異常處理程序虛擬存儲(chǔ)器頁面管理程序虛擬地址異常軟/硬件異常異常結(jié)構(gòu)中斷系統(tǒng)服務(wù)調(diào)用陷阱處理程序教育部-微軟精品課程資助項(xiàng)目異常和中斷中斷是異步事件,可能隨時(shí)發(fā)生,與處理器正在執(zhí)行的內(nèi)容無關(guān)。中斷主要由I/O設(shè)備、處理器時(shí)鐘或定時(shí)器產(chǎn)生,可以被啟用或禁用異常是同步事件,它是某一特定指令執(zhí)行的結(jié)果。在相同條件下,異??梢灾噩F(xiàn)。例如內(nèi)存訪問錯(cuò)誤、調(diào)試指令以及被零除。系統(tǒng)服務(wù)調(diào)用也視作異常。軟件和硬件都可以產(chǎn)生異常和中斷。陷阱幀:完整的線程描述表的子集,用于現(xiàn)場保護(hù)陷阱處理程序處理少量事件,多數(shù)轉(zhuǎn)交給其他的內(nèi)核或執(zhí)

25、行體模塊處理教育部-微軟精品課程資助項(xiàng)目中斷調(diào)度中斷分類和優(yōu)先級(jí)中斷請(qǐng)求級(jí)別(IRQL,Interrupt Request Level)硬件中斷軟件中斷APC 異步過程調(diào)用DPC 延遲過程調(diào)用P53 圖2-9 中斷請(qǐng)求級(jí)別教育部-微軟精品課程資助項(xiàng)目硬件中斷處理過程保存計(jì)算機(jī)的狀態(tài) 禁用中斷 調(diào)用中斷調(diào)度程序 提高處理器的IRQL到中斷源的級(jí)別 重新啟用中斷在中斷分配表中查找處理特定中斷的例程服務(wù)例程執(zhí)行 降低處理器的IRQL到該中斷發(fā)生前的級(jí)別 加載保存的機(jī)器狀態(tài) 中斷返回教育部-微軟精品課程資助項(xiàng)目軟件中斷的處理延遲過程調(diào)用P56 圖2-10 延遲過程調(diào)用的提交教育部-微軟精品課程資助項(xiàng)目

26、異步過程調(diào)用apc異步過程調(diào)用為用戶程序和系統(tǒng)代碼提供了一種在特殊用戶線程的描述表(一個(gè)特殊的進(jìn)程地址空間)中執(zhí)行代碼的方法 有用戶態(tài)APC和核心態(tài)APC 教育部-微軟精品課程資助項(xiàng)目異常調(diào)度異常直接由運(yùn)行程序的執(zhí)行所產(chǎn)生。除了那些可由陷阱處理程序解決的簡單異常外,所有異常都是由異常調(diào)度程序接管結(jié)構(gòu)化異常處理基于框架的異常處理程序異常調(diào)度過程P59 圖2-11 異常調(diào)度教育部-微軟精品課程資助項(xiàng)目系統(tǒng)服務(wù)調(diào)度在Alpha處理器上執(zhí)行syscall指令或在Intel x86處理器上執(zhí)行int 2E指令都會(huì)引起系統(tǒng)服務(wù)調(diào)度 系統(tǒng)服務(wù)調(diào)度程序?qū)⒁来巫飨旅鎺准拢盒r?yàn)參數(shù)調(diào)用者的參數(shù)從線程的用戶堆棧復(fù)

27、制到它的核心堆棧中執(zhí)行系統(tǒng)服務(wù) P60 圖2-12 系統(tǒng)服務(wù)調(diào)度教育部-微軟精品課程資助項(xiàng)目教育部-微軟精品課程資助項(xiàng)目對(duì)象管理器執(zhí)行體組件之一用于創(chuàng)建、刪除、保護(hù)和跟蹤對(duì)象提供使用系統(tǒng)范圍內(nèi)資源使用的公共、一致的機(jī)制實(shí)現(xiàn)對(duì)象的集中保護(hù)實(shí)現(xiàn)了資源的訪問控制對(duì)象管理器有一套對(duì)象命名方案和統(tǒng)一的保留規(guī)則,能夠容易地操縱現(xiàn)有對(duì)象 教育部-微軟精品課程資助項(xiàng)目執(zhí)行體對(duì)象由執(zhí)行體的各種組件實(shí)現(xiàn) 進(jìn)程管理器、內(nèi)存管理器、I/O子系統(tǒng)等 內(nèi)核對(duì)象由內(nèi)核實(shí)現(xiàn)的原始的對(duì)象集合這些對(duì)象對(duì)用戶態(tài)代碼是不可見的,它們僅在執(zhí)行體內(nèi)創(chuàng)建和使用 內(nèi)核對(duì)象提供了一些基本性能,許多執(zhí)行體對(duì)象內(nèi)包含著一個(gè)或多個(gè)內(nèi)核對(duì)象。 教育部

28、-微軟精品課程資助項(xiàng)目對(duì)象命名對(duì)象頭:存儲(chǔ)對(duì)象管理信息和描述信息類型對(duì)象:保存特定對(duì)象類型的類型信息對(duì)象的生存周期對(duì)象方法對(duì)象句柄對(duì)象安全配額和資源記帳教育部-微軟精品課程資助項(xiàng)目同步機(jī)制內(nèi)核同步內(nèi)核的臨界區(qū)是修改共用數(shù)據(jù)結(jié)構(gòu)的代碼段 最大問題是中斷 自旋鎖教育部-微軟精品課程資助項(xiàng)目執(zhí)行體同步自旋鎖使用的限制被保護(hù)的資源必須被快速訪問,并且沒有與其他代碼的復(fù)雜的交互作用。臨界區(qū)代碼不能換出內(nèi)存,不能引用可分頁數(shù)據(jù),不能調(diào)用外部程序(包括系統(tǒng)服務(wù)),不能生成中斷或異常情況。 調(diào)度程序?qū)ο蠼逃?微軟精品課程資助項(xiàng)目本地過程調(diào)用一個(gè)用于高速信息傳輸?shù)倪M(jìn)程間通信機(jī)制(使用共享內(nèi)存) LPC常常被使

29、用在一個(gè)服務(wù)器進(jìn)程與該服務(wù)器的一個(gè)或多個(gè)客戶進(jìn)程之間,以及在兩個(gè)用戶態(tài)進(jìn)程之間或一個(gè)核心態(tài)組件和一個(gè)用戶態(tài)進(jìn)程之間 常被視作經(jīng)過高度優(yōu)化的RPC的本地版本教育部-微軟精品課程資助項(xiàng)目LPC的三種交換信息的方法:使用包含信息的緩沖區(qū)調(diào)用LPC可以發(fā)送少于256字節(jié)的信息。然后,這個(gè)信息又從發(fā)送進(jìn)程的地址空間復(fù)制到系統(tǒng)地址空間,再從那里拷貝到接收進(jìn)程的地址空間。如果用戶和服務(wù)器想交換大于256字節(jié)的數(shù)據(jù),那么他們可以選擇使用雙方都映射了的共享區(qū)。發(fā)送方將信息數(shù)據(jù)放到共享區(qū),然后向接收方發(fā)送一小段信息表明在共享區(qū)的什么地方可以找到數(shù)據(jù)。當(dāng)服務(wù)器想讀或?qū)懘罅繑?shù)據(jù),而共享區(qū)又太小時(shí),數(shù)據(jù)可以直接從客戶地址空間讀出或向客戶地址空間寫入。教育部-微軟精品課程資助項(xiàng)目系統(tǒng)工作線程代表其它線程履行職責(zé)三種

溫馨提示

  • 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)論