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

下載本文檔

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

文檔簡介

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

2、品課程資助項目操作系統(tǒng)的設(shè)計目標(biāo)可靠性:正確性和健壯性, 主要指并發(fā)、共享及其引起的不確定性 高效性:提高系統(tǒng)的運行效率 易維護性:易讀、易擴充、易剪裁、易修改性 易移植性:一次開發(fā),多處使用安全性:計算機軟件系統(tǒng)安全性的基礎(chǔ) 可適應(yīng)性簡明性 目態(tài)管態(tài)用戶態(tài)管態(tài)教育部-微軟精品課程資助項目Windows 2000/XP的設(shè)計目標(biāo)總原則:市場需求 驅(qū)動 設(shè)計目標(biāo)需求:提供一個真32位搶占式可重入的虛擬內(nèi)存操作系統(tǒng)能夠在多種硬件體系結(jié)構(gòu)和平臺上運行能夠在對稱多處理系統(tǒng)上運行并具有良好的可伸縮性優(yōu)秀的分布式計算平臺,既可作為網(wǎng)絡(luò)客戶,又可作為網(wǎng)絡(luò)服務(wù)器可運行多數(shù)現(xiàn)有16位MS-DOS和Microso

3、ft Windows 3.1 應(yīng)用程序符合對POSLX 1003.1的要求符合政府和企業(yè)對操作系統(tǒng)安全性的要求支持Unicode,適應(yīng)全球市場的需要 教育部-微軟精品課程資助項目Windows 2000/XP的設(shè)計目標(biāo):可擴充性 可移植性可靠性及堅固性兼容性性能教育部-微軟精品課程資助項目操作系統(tǒng)的設(shè)計考慮功能設(shè)計:操作系統(tǒng)應(yīng)具備哪些功能 算法設(shè)計:選擇和設(shè)計滿足系統(tǒng)功能的算法和策略,并分析和估算其效能 結(jié)構(gòu)設(shè)計:選擇合適的操作系統(tǒng)結(jié)構(gòu) 教育部-微軟精品課程資助項目操作系統(tǒng)結(jié)構(gòu)設(shè)計 按照系統(tǒng)的功能和特性要求,選擇合適的結(jié)構(gòu),使用相應(yīng)的結(jié)構(gòu)設(shè)計方法將系統(tǒng)逐步地分解、抽象和綜合,使操作系統(tǒng)結(jié)構(gòu)清晰

4、、簡單、可靠、易讀、易修改,而且使用方便,適應(yī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ù)雜、信息交換頻繁計算機體系結(jié)構(gòu)日益復(fù)雜,應(yīng)用擴大、使用要求提高使得操作系統(tǒng)體系結(jié)構(gòu)日趨復(fù)雜教育部-微軟精品課程資助項目幾種常見的操作系統(tǒng)結(jié)構(gòu)模塊組合結(jié)構(gòu)模塊組合結(jié)構(gòu)的特點與適應(yīng)性模塊間轉(zhuǎn)接隨便數(shù)據(jù)基本上作為全程量處理常常關(guān)中斷,系統(tǒng)的并發(fā)性難以提高教育部-微軟精品課程資助項目層次結(jié)構(gòu)層次結(jié)構(gòu)設(shè)計方法的核心思想例如E.W.Dijkstra的THE系統(tǒng):12345處

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

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

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

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

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

10、/XP的核心態(tài)組件使用了面向?qū)ο笤O(shè)計原則出于可移植性以及效率因素的考慮,大部分代碼使用了基于C語言的對象實現(xiàn)。Windows 2000/XP的很多系統(tǒng)服務(wù)運行在核心態(tài),這使得Windows 2000/XP更加高效,而且也是相當(dāng)穩(wěn)定的。教育部-微軟精品課程資助項目系統(tǒng)支持進程服務(wù)進程用戶程序環(huán)境子系統(tǒng)子系統(tǒng)動態(tài)鏈接庫圖形引擎執(zhí)行體核心設(shè)備驅(qū)動HAL用戶態(tài)核心態(tài)Windows 2000/XP的構(gòu)成教育部-微軟精品課程資助項目用戶態(tài)組件系統(tǒng)支持進程(system support process),不是Windows 2000/XP服務(wù),不由服務(wù)控制器啟動。服務(wù)進程(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)動態(tài)鏈接庫:調(diào)用層轉(zhuǎn)換和映射教育部-微軟精品課程資助項目核心態(tài)組件核心(kernel)包含了最低級的操作系統(tǒng)功能,例如線程調(diào)度、中斷和異常調(diào)度、多處理器同步等。同時它也提供了執(zhí)行體(Executive)用來實現(xiàn)高級結(jié)構(gòu)的一組例程和基本對象。執(zhí)行體包含基本的操作系統(tǒng)服務(wù),

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

13、被屏蔽在千差萬別的硬件平臺之外。提供操作系統(tǒng)可移植性的兩個關(guān)鍵組件是HAL和內(nèi)核。依賴于體系結(jié)構(gòu)的功能在內(nèi)核中實現(xiàn),在相同體系結(jié)構(gòu)中,因計算機而異的功能在HAL中實現(xiàn)。Windows 2000/XP大量使用高級語言執(zhí)行體、設(shè)備驅(qū)動程序等用C語言編寫,圖形用戶界面用C+編寫。只有那些必須和系統(tǒng)硬件直接通信的操作系統(tǒng)部分,或性能極度敏感的部分是用匯編語言編寫的。匯編語言代碼分布集中且少。 教育部-微軟精品課程資助項目對稱多處理器支持代碼對多處理器的可伸縮性好完善的IPC和鎖機制解決資源競爭問題核心態(tài)組件代碼可重入程度極高多優(yōu)先級搶占式調(diào)度(利用系統(tǒng)陷阱調(diào)度),多數(shù)核心態(tài)組件代碼都可以被搶占由NTO

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

15、微軟精品課程資助項目內(nèi)核對象幫助控制、處理并支持執(zhí)行體對象的操作,以降低系統(tǒng)策略代價控制對象,這個對象集和包括內(nèi)核進程對象、異步過程調(diào)用(APC,asynchronous procedure call)對象、延遲過程調(diào)用(DPC,deferred procedure call)對象和幾個由I/O系統(tǒng)使用的對象,例如中斷對象。調(diào)度程序?qū)ο蠹县撠?zé)同步操作并影響線程調(diào)度。調(diào)度程序?qū)ο蟀▋?nèi)核線程、互斥體(Mutex)、事件(Event)、內(nèi)核事件對、信號量(Semaphore)、定時器和可等待定時器 教育部-微軟精品課程資助項目內(nèi)核與硬件使得執(zhí)行體和設(shè)備驅(qū)動程序同硬件無關(guān) 實現(xiàn)手段:一組在多個體系

16、結(jié)構(gòu)上可移植、同語義的接口內(nèi)核也有部分代碼不具有移植性支持虛擬8086模式的代碼,用以運行一些古老的16位DOS程序高速緩存管理描述表切換教育部-微軟精品課程資助項目硬件抽象層(HAL)實際硬件與Windows 2000/XP抽象計算機描述的接口層和功能映射層隱藏各種與硬件有關(guān)的細節(jié),例如I/O接口、中斷控制器以及多處理器通信機制等實現(xiàn)多種硬件平臺上的可移植性教育部-微軟精品課程資助項目執(zhí)行體提供的功能性調(diào)用從用戶態(tài)導(dǎo)出并且可以調(diào)用的函數(shù)。這些函數(shù)的接口在NTDLL.DLL中。通過Win32API或一些其他的環(huán)境子系統(tǒng)可以對它們進行訪問。從用戶態(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ù)。 教育部-微軟精品課程資助項目包含的功能實體進程和線程管理器創(chuàng)建及中止進程和線程。對進程和線程的基本支持在Windows 2000內(nèi)核中實現(xiàn),而執(zhí)行體給這些低級對象添加附加語義和功能。虛擬內(nèi)存管理器實現(xiàn)“虛擬內(nèi)存”。內(nèi)存管理器也為高速緩存管理器提供基本的支持。安全引用監(jiān)視器在本地計算機上執(zhí)行安全策略。它保護了操作系統(tǒng)資源,執(zhí)行運行時對象的保護和監(jiān)視。I/O系統(tǒng)執(zhí)行獨立于設(shè)備的輸入/輸出,并為進一步處理調(diào)用適當(dāng)?shù)脑O(shè)

18、備驅(qū)動程序。高速緩存管理器通過將最近引用的磁盤數(shù)據(jù)駐留在主內(nèi)存中來提高文件I/O的性能,并且通過在把更新數(shù)據(jù)發(fā)送到磁盤之前將它們在內(nèi)存中保持一個短的時間來延緩磁盤的寫操作,這樣就可以實現(xiàn)快速訪問。 教育部-微軟精品課程資助項目對象管理:創(chuàng)建、管理以及刪除Windows 2000/XP的執(zhí)行體對象和用于代表操作系統(tǒng)資源的抽象數(shù)據(jù)類型,例如進程、線程和各種同步對象。本地過程調(diào)用(LPC,Local Procedure Call)機制,在同一臺計算機上的客戶進程和服務(wù)進程之間傳遞信息。LPC是一個靈活的、經(jīng)過優(yōu)化的“遠程過程調(diào)用”(RPC,Remote Procedure Call)版本。一組廣泛的

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

20、不同子系統(tǒng)之間混用,因此每一個可執(zhí)行的映像都受限于唯一的子系統(tǒng) 三種環(huán)境子系統(tǒng):POSIX、OS/2和Win32(OS/2 只能用于x86系統(tǒng)) Win32子系統(tǒng)必須始終處于運行狀態(tài),其他兩個子系統(tǒng)只是在需要時才被啟動,Win32子系統(tǒng)是Windows 2000/XP運行的基本條件之一。教育部-微軟精品課程資助項目Win32子系統(tǒng)Win32環(huán)境子系統(tǒng)進程CSRSS,包括對下列功能的支持:控制臺(文本)窗口、創(chuàng)建及刪除進程與線程、支持16位DOS虛擬機(VDM)進程的部分。核心態(tài)設(shè)備驅(qū)動程序(WIN32K.SYS)。圖形設(shè)備接口(GDI,Graphics Device Interfaces)子系

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

22、子系統(tǒng)、子系統(tǒng)動態(tài)鏈接庫、及其他本機映像提供內(nèi)部支持函數(shù)NTDLL也包含許多支持函數(shù),例如映像加載程序、堆管理器和Win32子系統(tǒng)進程通信函數(shù)以及通用運行庫。用戶態(tài)異步過程調(diào)用(APC)調(diào)度器和異常調(diào)度器。 教育部-微軟精品課程資助項目系統(tǒng)支持進程Idle進程系統(tǒng)進程會話管理器SMSSWin32子系統(tǒng)CSRSS登錄進程WINLOGIN本地安全身份驗證服務(wù)器LSASS服務(wù)控制器SERVICES及其相關(guān)的服務(wù)進程 教育部-微軟精品課程資助項目Windows 2000/XP的系統(tǒng)機制陷阱調(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í)行體對象管理器(Executive Object Manager)同步(Synchronization),包括自旋鎖(Spin lock)、內(nèi)核調(diào)度程序?qū)ο螅↘ernel Dispatcher Objects)本地過程調(diào)用(LPC,Local Procedure Call)教育部-微軟精品課程資助項目陷阱調(diào)度當(dāng)異?;蛑袛喟l(fā)生時,硬件或軟件可以檢測到,處理器會從用戶態(tài)切換到核心態(tài),并將控制轉(zhuǎn)交給內(nèi)核的陷阱處理程序,該模

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

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

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

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

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論