




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、系統(tǒng)結(jié)構(gòu)操作系統(tǒng)模型微內(nèi)核:操作系統(tǒng)的主要 組件(內(nèi)存管理器、進程管理器、I/O管理器)運行在各自獨立的進程中,他們有自己的私有地址,在這之上是一組原語服務。總體結(jié)構(gòu)Page:70Ø 可移植性內(nèi)核處理不同硬件體系結(jié)構(gòu);HAL處理同體系下的不同硬件系統(tǒng)差異;Ø 對稱多處理對稱多處理操作系統(tǒng) page:73超線程處理器和NUMAPage:74PS:針對單處理器和多處理器的系統(tǒng),其文件差異最多有以上6個;對于xp及以后系統(tǒng)最多只有3個。Ø 操作系統(tǒng)的可伸縮性Page:78客戶機版本和服務器版本的引導差異:關(guān)鍵的系統(tǒng)組件環(huán)境子系統(tǒng)和子系統(tǒng)DLL用戶應用程序(包括windo
2、ws,POSIX,OS/2應用程序)只能調(diào)用自己環(huán)境子統(tǒng)導出的服務;并且不直接調(diào)用windows的系統(tǒng)服務,相反,他們通過一個或多個子系統(tǒng)DLL來進行。² Windows子系統(tǒng)Page:87windows子系統(tǒng)的內(nèi)核模式設備驅(qū)動文件是Win32k.sys,其進程名為Csrss.exe(之前作為windows NT系統(tǒng)原始設計中,全局唯一環(huán)境子系統(tǒng)進程的一個線程,當POSIX和OS/2子線程獨立成進程后,此名字未改變)ü 環(huán)境子系統(tǒng)進程Csrss.exeü 內(nèi)核模式設備驅(qū)動程序 Win32k.sysü 子系統(tǒng)DLLü 圖形設備驅(qū)動程序?qū)⒋翱诠芾砥?/p>
3、和圖形服務從windows子系統(tǒng)的用戶模式移到內(nèi)核模式對系統(tǒng)的影響分析 On Page:89² POSIX子系統(tǒng)² OS/2子系統(tǒng)² Ntdll.dll² 執(zhí)行體(Ntoskrnl.exe的上層部分)ü 包含的函數(shù)Page:96ü 包含的組件² 內(nèi)核(Ntoskrnl.exe的下層層部分)ü 內(nèi)核對象組織ü 硬件支持(不同處理器硬件體系結(jié)構(gòu)Page:98)硬件抽象層HAL設備驅(qū)動程序exp其實就是對硬件的“標準抽象”² 設備驅(qū)動程序類型² Windows驅(qū)動程序模型從WDM的角度分3種
4、ü 總線型驅(qū)動程序(bus driver)ü 功能型驅(qū)動程序(function driver)ü 過濾型驅(qū)動程序(filter drvier)<進一步分上層過濾型和下層過濾型>系統(tǒng)進程² 空閑進程² System進程和系統(tǒng)線程² 會話管理器(Smss.exe)² WinLogon、LSASS和Userinit² 服務控制管理器(Services.exe)系統(tǒng)機制陷阱分發(fā)陷阱機制:在中斷或異常發(fā)生時,處理器將捕捉到的線程控制權(quán)轉(zhuǎn)移到操作系統(tǒng)的某一個固定地址處的機制即將某個情況交給某個函數(shù)處理的機制。在wi
5、ndows子系統(tǒng)不確定是windows子系統(tǒng)還是windows系統(tǒng)都這么做?下 陷阱處理器就是一組與中斷(異步事件)或異常(同步條件)相關(guān)的異常處理函數(shù)。在中斷或異常發(fā)生時,處理器(CPU)將控制權(quán)轉(zhuǎn)給一個陷阱處理器。內(nèi)核對待中斷和異常的區(qū)別Page:117陷阱幀:windows在被中斷的線程的內(nèi)核棧上創(chuàng)建的用于保存當前線程執(zhí)行狀態(tài)的一段存儲區(qū)域,用于恢復中斷后的流程用于硬件中斷或異常線程幀定義dt nt!_ktrap_frame。軟中斷的處理:即DPC或APC前端陷阱處理函數(shù)Page:118中斷分發(fā)² 硬件中斷處理ü 硬件中斷請求IRQ(對應硬件中斷號)ü 中斷
6、分發(fā)表IDTWindows支持的硬件體系最多支持256項IDT,但具體取決于中斷控制器!idt(存儲異?;蛑袛嗵幚砝?lt;函數(shù)>的索引號)外部I/O產(chǎn)生中斷IRQ到中斷控制器(硬件芯片),中斷控制器中斷處理器(CPU),處理器詢問中斷控制器中斷處理例程地址,中斷控制器將IRQ號翻譯成IDT索引,然后將索引對應的地址指針傳給處理器,處理器調(diào)用指針處的函數(shù)對中斷進行處理。Windows將硬件IRQ映射到IDT的中斷號(實際是異常處理函數(shù)索引)上,IDT是在系統(tǒng)啟動時就填充好的(初始化時通過相應的DLL load)。同時即插即用管理器調(diào)用HAL的函數(shù)將硬件IRQ映射到對應的IRQL軟中斷如
7、何映射IRQL?每一個處理器都有一個獨立的IDT,也就意味著,不同的處理器對相同的IRQ可能有不同的處理。ü 中斷控制器(PIC/APIC/SAPIC)!pic/!apicX86中斷控制器1、 PIC 單處理器 15條中斷線2、 APIC/SAPIC 多處理器 256條中斷線其他硬件結(jié)構(gòu)的中斷控制器Page:122ü 軟件中斷請求級別IRQL是針對于處理器的可中斷級別,由中斷分發(fā)器(即中斷處理器)提升或降級(但最終的設置操作是由HAL執(zhí)行),每個處理器的IRQL隨著系統(tǒng)的運行而不同。x86:0-31x61/IA64:0-15HAL在系統(tǒng)初始化時將硬件中斷IRQ映射成軟件中斷
8、號IRQL(P:127)!irql 延遲IRQL處理器控制區(qū)PCR/塊PRCBP:126!pcrü 中斷對象是一個內(nèi)核控制對象,包含了ISR地址、中斷IRQL級別、與ISR關(guān)聯(lián)的IDT項;每個CPU一個中斷對象結(jié)構(gòu)(包含這個CPU所有的中斷信息塊 所以一個CPU一個IDT)。一個典型的中斷對象結(jié)構(gòu)一個典型的中斷流程如下:PS:例子中中斷對象的分發(fā)代碼里先建立陷阱幀,然后調(diào)用KiInterruptDispatchAaWindows系統(tǒng)為何不適合作為實時處理系統(tǒng)?中斷共享:中斷對象可以讓一個IRQL(IRQ)為多個硬件設備注冊ISR,當中斷調(diào)用時進行ISR遍歷,尋找中斷應答函數(shù)。
9、8; 軟件中斷處理ü 分發(fā)或者延遲過程調(diào)用DPC中斷主要是為設備驅(qū)動程序提供的(P:136 非緊急I/O處理),但內(nèi)核也經(jīng)常使用DPC處理一些線程分發(fā)、延遲系統(tǒng)操作(調(diào)用)及時限到期事件DPC對象內(nèi)核控制對象,主要保存了處理DPC事件的系統(tǒng)函數(shù)地址/隊列和處理器相關(guān)(一一對應),處于DPC IRQL級別ü 異步過程調(diào)用APC中斷特定用戶線程環(huán)境執(zhí)行用戶程序和系統(tǒng)代碼,是另一種更低級別的函數(shù)調(diào)用過程(主要和線程相關(guān))APC對象內(nèi)核控制對象/隊列和特定的用戶線程相關(guān)APC類型:內(nèi)核模式(再分:普通的、特殊的)、用戶模式P:140 執(zhí)行體和設備I/O異常分發(fā)² 結(jié)構(gòu)化異
10、常處理基于幀的異常處理器由環(huán)境子系統(tǒng)建立,和具體的過程調(diào)用有關(guān),當一個過程被調(diào)用的時候,關(guān)于這個過程的棧幀被壓入棧中(具體和進程相關(guān)),主要是處理子系統(tǒng)用戶環(huán)境相關(guān)的程序異常(包括內(nèi)核模式和用戶模式)調(diào)試器端口兩次機會通知和異常端口和環(huán)境子系統(tǒng)相關(guān)² 未處理的異常² Windows錯誤報告系統(tǒng)服務分發(fā)² 32/64位系統(tǒng)服務分發(fā)寄存器EAX 傳遞系統(tǒng)服務調(diào)用號,其他根據(jù)處理器架構(gòu)不同,參數(shù)傳遞方式和call方式有所不同;當CPU執(zhí)行call指令時,線程進入內(nèi)核模式,執(zhí)行系統(tǒng)服務分發(fā)器(KiSystemService),依據(jù)系統(tǒng)服務分發(fā)表,執(zhí)行相關(guān)調(diào)用號的服務。
11、178; 內(nèi)核模式的系統(tǒng)服務分發(fā)² 服務描述符表典型的系統(tǒng)服務分發(fā)過程對象管理器執(zhí)行體對象對象結(jié)構(gòu)Windows子系統(tǒng)由執(zhí)行體對象導出的或大或小的對象集合(相當于對執(zhí)行體對象的再次封裝)² 對象頭和對象體P:161執(zhí)行體對象和對象服務是環(huán)境子系統(tǒng)用于構(gòu)建其自己版本的對象和其他資源的基礎。² 類型對象通過設置APC軟件中斷(添加APC中斷隊列 此隊列只和某具體線程相關(guān))來達到線程同步?² 對象方法當執(zhí)行體組件創(chuàng)建了一個新的對象類型時,它可以向?qū)ο蠊芾砥髯砸粋€或多方法。對象管理器可在這種類型的對象周期中某些特殊的點執(zhí)行這些方法(eg:創(chuàng)建、刪除、狀態(tài)改變等
12、) - 類似事件觸發(fā)操作² 對象句柄一個句柄對應一個對象,windows子系統(tǒng)通過句柄統(tǒng)一管理所有執(zhí)行體導出對象,句柄就是一個索引(和用戶模式進程相關(guān),因為用戶模式下只有進程或線程才會進行對象操作)內(nèi)核模式下,執(zhí)行體組件和設備驅(qū)動程序可以直接訪問對象,但必須使用引用計數(shù)做標示和進程句柄表每個進程最多不超過 16 000 000個句柄進程用戶模式內(nèi)存地址中有一段用來記錄句柄索引(指向換頁的內(nèi)存池中的句柄表)P169 需要再細看下?執(zhí)行體進程塊中也有一個域(即句柄索引)指向進程的句柄表句柄索引為4個字節(jié),第一個是4,第二個是8,依次類推句柄表中的句柄項² 對象安全性²
13、 對象保持力(Object Retention)對象有永久的和暫時的兩種對象保持力分兩個階段:名稱保持力和對象實體保持力對象有兩個計數(shù)器:1、 句柄計數(shù)器2、 引用計數(shù)(句柄計數(shù)+系統(tǒng)進程引用計數(shù))² 資源記賬P175² 對象名稱² 會話名字空間P178同步高IRQL的同步² 互鎖操作² 自旋鎖²低IRQL的同步進程和線程及纖程虛擬內(nèi)存A地址窗口擴展 AWE機制Page 47內(nèi)核模式和用戶模式(處理器訪問模式)Ring0 ring3終端服務及多個回話提供單系統(tǒng)多用戶的交互會話功能。對象和句柄對象和普通數(shù)據(jù)結(jié)構(gòu)的區(qū)別(不可直接讀取,需要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考考前最后一卷化學(福建卷)(全解全析)
- 醫(yī)院住院收入管理制度
- 展館預約參觀管理制度
- 回收鋅及鋅合金原料 編制說明
- 送變電工程公司澆制基礎施工作業(yè)指導
- BIM技術(shù)在項目實施階段的應用
- 員工飼養(yǎng)寵物管理制度
- 醫(yī)院人員辭職管理制度
- 公司稅控發(fā)票管理制度
- 公共場所設備管理制度
- 鍋爐安裝調(diào)試總體驗收簽證單
- NovaStudio2012軟件使用說明書 - NovaStudio2012 軟件使用手冊
- 15電泳件的檢驗標準
- 抑郁病診斷證明書
- 中國歷史地理概述 第三版
- “創(chuàng)客中國”中小企業(yè)創(chuàng)新創(chuàng)業(yè)大賽大賽評分標準
- 維克多高中英語3500詞匯
- 2023年營口中考語文(四篇)
- 高考地理復習課件:摩爾曼斯克(共12張PPT)
- 關(guān)節(jié)型機器人腕部結(jié)構(gòu)設計(全套,CAD有圖)
- 部編語文八年級語文下冊專題復習課件
評論
0/150
提交評論