資源描述:
《《windows內(nèi)存》ppt課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Windows內(nèi)存管理操作系統(tǒng)課程組2Windows虛擬地址空間虛擬地址空間(Virtualaddressspace)Asetofvirtualmemoryaddressesthataprocesscanuse.特點平面(線形)空間大小和物理內(nèi)存無關(guān)每個進程擁有的私有地址空間,其他的進程在未經(jīng)允許的條件下不能訪問此地址空間3Windows虛擬地址空間32-bitx86AddressSpace虛擬地址空間最大為4GB2GB用戶進程空間(低端x00000000—x7FFFFFFF)2GB系統(tǒng)空間(受保護
2、,高端x80000000--xFFFFFFFF)Default3GBUserprocessspace1GBSystemSpace3GBuserspaceWindows2000AdvancedServer,WindowsXP(SP2及后繼版本),WindowsServer20034Windows虛擬地址空間virtualpagespagetableentries000000007FFFFFFFC0000000C100000080000000FFFFFFFFPhysicalMemory5Windows虛
3、擬地址空間64-bitAddressSpaces8192GB(8TB)Userprocessspace6657GBSystemSpace7152GB(7TB)Userprocessspace6144GBSystemSpacex64Itanium6Windows內(nèi)存管理器Windows的內(nèi)存管理器是執(zhí)行體(Executive)的一部分,位于文件Ntoskrnl.exe中簡化的windows結(jié)構(gòu)圖7Windows內(nèi)存管理器內(nèi)存管理器的主要任務(wù)將一個進程的虛擬地址空間映射到物理內(nèi)存中(mapping)。數(shù)
4、據(jù)交換(swap)。當(dāng)物理內(nèi)存被過度使用時,將內(nèi)存中的一些內(nèi)容轉(zhuǎn)移到磁盤上;并且,在以后需要這些內(nèi)容時,再將它們讀回到物理內(nèi)存中。8Windows內(nèi)存管理器內(nèi)存管理器提供的服務(wù)(面向用戶)分配和釋放虛擬內(nèi)存進程之間共享內(nèi)存將文件映射到內(nèi)存將虛擬頁面刷新到內(nèi)存獲得虛擬頁面的信息改變虛擬頁面的保護屬性將虛擬頁面鎖在內(nèi)存……API函數(shù):頁面粒度的虛擬內(nèi)存函數(shù)內(nèi)存映射文件函數(shù)堆函數(shù)9Windows的內(nèi)存管理方案Windows內(nèi)存管理采用的是虛擬頁式管理方案,默認(rèn)情況下,每個頁面大小為4KB。Windows頁
5、面組織方式(二級頁表結(jié)構(gòu))頁表(PageTable):ApageofmappinginformationPageTable(1024PTEs,每個頁表可映射4MB數(shù)據(jù)頁面)PTE(pagetableentry):4字節(jié)10Windows的內(nèi)存管理方案頁目錄(Pagedirectory)PageDirectory(oneperprocess,1024entries)PageTablesPDE(pagedirectoryentries)4字節(jié):記錄頁表的狀態(tài)和位置KPROCESS11Windows的內(nèi)存
6、管理方案PageTablesphysicalpagenumber(“pageframenumber”or“PFN”)PhysicalPages123456789101112PFN0PageDirectoryKPROCESS12虛擬頁號Windows虛擬地址變換x86系統(tǒng)32位虛擬地址結(jié)構(gòu)3122211211010bits10bits12bits頁目錄索引頁表索引頁內(nèi)字節(jié)索引13Windows虛擬地址變換地址變換過程(x86系統(tǒng))PagetableselectorPagetableentryselec
7、torBytewithinpageindexPageDirectoryindexPageTablesphysicalpagenumber(“pageframenumber”or“PFN”)PhysicalPages123456789101112PFN031014Windows頁面錯誤在頁面表換該過程中,可能會發(fā)現(xiàn)PTE的有效位被清除的情況,這表明出于某種原因,該頁面無法被當(dāng)前進程訪問。在此對一個無效頁面的引用被稱為頁面錯誤(pagefault)引發(fā)錯誤的原因缺頁頁面在內(nèi)存,但在備用或修改隊列中訪問違
8、例……15Windows頁面錯誤缺頁錯誤的處理方法采用請求調(diào)頁和頁簇化技術(shù)當(dāng)發(fā)生缺頁中斷時,windows內(nèi)存管理器將所需頁面及其之前或之后的少量頁面一起加載到內(nèi)存中。根據(jù)程序行為局部性理論,這種頁簇化技術(shù)可以減少缺頁中斷次數(shù)。Windows系統(tǒng)中如果缺頁的原因是因為引用數(shù)據(jù)頁面錯誤,則簇的大小為3,否則為7。16工作集定義Asubsetofvirtualpagesresidentinphysicalmemory.分類進程工作集:進程當(dāng)前在內(nèi)存中的頁面的集合。系統(tǒng)工作