![佛山科學(xué)技術(shù)學(xué)院-操作系統(tǒng)-存儲(chǔ)管理-試驗(yàn)報(bào)告_第1頁(yè)](http://file4.renrendoc.com/view/b767a965de25d1c91ea4c410f8c5f16b/b767a965de25d1c91ea4c410f8c5f16b1.gif)
![佛山科學(xué)技術(shù)學(xué)院-操作系統(tǒng)-存儲(chǔ)管理-試驗(yàn)報(bào)告_第2頁(yè)](http://file4.renrendoc.com/view/b767a965de25d1c91ea4c410f8c5f16b/b767a965de25d1c91ea4c410f8c5f16b2.gif)
![佛山科學(xué)技術(shù)學(xué)院-操作系統(tǒng)-存儲(chǔ)管理-試驗(yàn)報(bào)告_第3頁(yè)](http://file4.renrendoc.com/view/b767a965de25d1c91ea4c410f8c5f16b/b767a965de25d1c91ea4c410f8c5f16b3.gif)
![佛山科學(xué)技術(shù)學(xué)院-操作系統(tǒng)-存儲(chǔ)管理-試驗(yàn)報(bào)告_第4頁(yè)](http://file4.renrendoc.com/view/b767a965de25d1c91ea4c410f8c5f16b/b767a965de25d1c91ea4c410f8c5f16b4.gif)
![佛山科學(xué)技術(shù)學(xué)院-操作系統(tǒng)-存儲(chǔ)管理-試驗(yàn)報(bào)告_第5頁(yè)](http://file4.renrendoc.com/view/b767a965de25d1c91ea4c410f8c5f16b/b767a965de25d1c91ea4c410f8c5f16b5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)二存儲(chǔ)管理2.1背景知識(shí)耗盡內(nèi)存是Windows2000/XP系統(tǒng)中最常見(jiàn)的問(wèn)題之一。當(dāng)系統(tǒng)耗盡內(nèi)存時(shí),所有進(jìn)程對(duì)內(nèi)存的總需求超出了系統(tǒng)的物理內(nèi)存總量。隨后,Windows2000/XP必須借助它的虛擬內(nèi)存來(lái)維持系統(tǒng)和進(jìn)程的運(yùn)行。虛擬內(nèi)存機(jī)制是Windows2000/XP操作系統(tǒng)的重要組成部分,但它的速度比物理內(nèi)存慢得多,因此,應(yīng)該盡量避免耗盡物理內(nèi)存資源,以免導(dǎo)致性能下降。解決內(nèi)存不足問(wèn)題的一個(gè)有效的方法就是添加更多的內(nèi)存。但是,一旦提供了更多的內(nèi)存,Windows2000/XP很可以會(huì)立即“吞食”。而事實(shí)上,添加更多的內(nèi)存并非總是可行的,也可能只是推遲了實(shí)際問(wèn)題的發(fā)生。因此,應(yīng)該相信,優(yōu)化所擁有的內(nèi)存是非常關(guān)鍵的。1、分頁(yè)過(guò)程當(dāng)Windows2000/XP求助于硬盤以獲得虛擬內(nèi)存時(shí),這個(gè)過(guò)程被稱為分頁(yè)(paging)。分頁(yè)就是將信息從主內(nèi)存移動(dòng)到磁盤進(jìn)行臨時(shí)存儲(chǔ)的過(guò)程。應(yīng)用程序?qū)⑽锢韮?nèi)存和虛擬內(nèi)存視為一個(gè)獨(dú)立的實(shí)體,甚至不知道Windows2000/XP使用了兩種內(nèi)存方案,而認(rèn)為系統(tǒng)擁有比實(shí)際內(nèi)存更多的內(nèi)存。例如,系統(tǒng)的內(nèi)存數(shù)量可能只有16MB,但每一個(gè)應(yīng)用程序仍然認(rèn)為有4GB內(nèi)存可供使用。使用分頁(yè)方案帶來(lái)了很多好處,不過(guò)這是有代價(jià)的。當(dāng)進(jìn)程需要已經(jīng)交換到硬盤上的代碼或數(shù)據(jù)時(shí),系統(tǒng)要將數(shù)據(jù)送回物理內(nèi)存,并在必要時(shí)將其他信息傳輸?shù)接脖P上,而硬盤與物理內(nèi)存在性能上的差異極大。例如,硬盤的訪問(wèn)時(shí)間通常大約為4-10毫秒,而物理內(nèi)存的訪問(wèn)時(shí)間為60us,甚至更快。2、內(nèi)存共享應(yīng)用程序經(jīng)常需要彼此通信和共享信息。為了提供這種能力,Windows2000/XP必須允許訪問(wèn)某些內(nèi)存空間而不危及它和其他應(yīng)用程序的安全性和完整性。從性能的角度來(lái)看,共享內(nèi)存的能力大大減少了應(yīng)用程序使用的內(nèi)存數(shù)量。運(yùn)行一個(gè)應(yīng)用程序的多個(gè)副本時(shí),每一個(gè)實(shí)例都可以使用相同的代碼和數(shù)據(jù),這意味著不必維護(hù)所加載應(yīng)用程序代碼的單獨(dú)副本并使用相同的內(nèi)存資源。無(wú)論正在運(yùn)行多少個(gè)應(yīng)用程序?qū)嵗?,充分支持?yīng)用程序代碼所需求的內(nèi)存數(shù)量都相對(duì)保持不變。3、未分頁(yè)合并內(nèi)存與分頁(yè)合并內(nèi)存Windows2000/XP決定了系統(tǒng)內(nèi)存組件哪些可以以及哪些不可以交換到磁盤上。顯然,不應(yīng)該將某些代碼(例如內(nèi)核)交換出主內(nèi)存。因此,Windows2000/XP將系統(tǒng)使用的內(nèi)存進(jìn)一步劃分為未分頁(yè)合并內(nèi)存和分頁(yè)合并內(nèi)存。分頁(yè)合并內(nèi)存是存儲(chǔ)遲早需要的可分頁(yè)代碼或數(shù)據(jù)的內(nèi)存部分。雖然可以將分頁(yè)合并內(nèi)存中的任何系統(tǒng)進(jìn)程交換到磁盤上,但是它臨時(shí)存儲(chǔ)在主內(nèi)存的這一部分,以防系統(tǒng)立刻需要它。在將系統(tǒng)進(jìn)程交換到磁盤上之前,Windows2000/XP會(huì)交換其他進(jìn)程。未分頁(yè)合并內(nèi)存包含必須駐留在內(nèi)存中的占用代碼或數(shù)據(jù)。這種結(jié)構(gòu)類似于早期的MS-DOS程序使用的結(jié)構(gòu),在MS-DOS中,相對(duì)較小的終止并駐留程序(TerminateandStayResidentTSR)在啟動(dòng)時(shí)加載到內(nèi)存中。這些程序在系統(tǒng)重新啟動(dòng)或關(guān)閉之前一直駐留在內(nèi)存的特定部分中。例如,防病毒程序?qū)⒓虞d為TSR程序,以預(yù)防可能的病毒襲擊。未分頁(yè)合并內(nèi)存中包含的進(jìn)程保留在主內(nèi)存中,并且不能交換到磁盤上。物理內(nèi)存的這個(gè)部分用于內(nèi)核模式操作(例如,驅(qū)動(dòng)程序)和必須保留在主內(nèi)存中才能有效工作的其他進(jìn)程。沒(méi)有主內(nèi)存的這個(gè)部分,內(nèi)核組件就將是可分頁(yè)的,系統(tǒng)本身就有變得不穩(wěn)定的危險(xiǎn)。分配到未分頁(yè)內(nèi)存池的主內(nèi)存數(shù)量取決于服務(wù)器擁有的物理內(nèi)存數(shù)量以及進(jìn)程對(duì)系統(tǒng)上的內(nèi)存地空間的需求。不過(guò),Windows2000/XP將未分頁(yè)合并內(nèi)存限制為256MB(在WindowsNT4中的限制為128MB)。根據(jù)系統(tǒng)中的物理內(nèi)存數(shù)量,復(fù)雜的算法在啟動(dòng)時(shí)動(dòng)態(tài)確定Windows2000/XP系統(tǒng)上的未分頁(yè)合并內(nèi)存的最大數(shù)量。Windows2000/XP內(nèi)部的這一自我調(diào)節(jié)機(jī)制可以根據(jù)當(dāng)前的內(nèi)存配置自動(dòng)調(diào)整大小。例如,如果增加或減少系統(tǒng)中的內(nèi)存數(shù)量,那么Windows2000將自動(dòng)調(diào)整未分頁(yè)合并內(nèi)存的大小,以反映這一更改。4、提高分頁(yè)性能只有一個(gè)物理硬盤驅(qū)動(dòng)器的系統(tǒng)限制了優(yōu)化分頁(yè)性能的能力。驅(qū)動(dòng)器必須處理系統(tǒng)和應(yīng)用程序的請(qǐng)求以及對(duì)分頁(yè)文件的訪問(wèn)。雖然物理驅(qū)動(dòng)器可能有多個(gè)分區(qū),但是將分頁(yè)文件分布到多個(gè)分區(qū)的分頁(yè)文件并不能提高硬盤驅(qū)動(dòng)器的能力。只有當(dāng)一個(gè)分區(qū)沒(méi)有足夠的空間來(lái)包含整個(gè)分頁(yè)文件時(shí),才將分頁(yè)文件放在同一個(gè)硬盤的多個(gè)分區(qū)上。擁有多個(gè)物理驅(qū)動(dòng)器的服務(wù)器可以使用多個(gè)分頁(yè)文件來(lái)提高分頁(yè)性能。關(guān)鍵是將分頁(yè)請(qǐng)求的負(fù)載分布到多個(gè)物理硬盤上。實(shí)際上,使用獨(dú)立物理驅(qū)動(dòng)器上的分頁(yè)文件,系統(tǒng)可以同時(shí)處理多個(gè)分頁(yè)請(qǐng)求。各個(gè)物理驅(qū)動(dòng)器可以同時(shí)訪問(wèn)它自己的分頁(yè)文件并寫入信息,這將增加可以傳輸?shù)男畔⒘?。多個(gè)分頁(yè)文件的最佳配置是將各個(gè)分頁(yè)文件放在擁有自己的控制器的獨(dú)立驅(qū)動(dòng)器上。不過(guò),由于額外的費(fèi)用并且系統(tǒng)上的可用中斷很有限,因此對(duì)于大多數(shù)基于服務(wù)器的配置來(lái)說(shuō),這可能是不切實(shí)際的解決方案。分頁(yè)文件最重要的配置參數(shù)是大小。無(wú)論系統(tǒng)中有多少個(gè)分頁(yè)文件,如果它們的大小不合適,那么系統(tǒng)就可能遇到性能問(wèn)題。如果初始值太小,那么系統(tǒng)可能必須擴(kuò)大分頁(yè)文件,以補(bǔ)償額外的分頁(yè)活動(dòng)。當(dāng)系統(tǒng)臨時(shí)增加分頁(yè)文件時(shí),它必須在處理分頁(yè)請(qǐng)求的同時(shí)創(chuàng)建新的空間。這時(shí),系統(tǒng)將出現(xiàn)大量的頁(yè)面錯(cuò)誤,甚至可能出現(xiàn)系統(tǒng)失效。當(dāng)系統(tǒng)必須在進(jìn)程的工作區(qū)外部(在物理內(nèi)存或分頁(yè)文件中的其他位置)查找信息時(shí),就會(huì)出現(xiàn)頁(yè)面錯(cuò)誤。當(dāng)系統(tǒng)缺乏存儲(chǔ)資源(物理內(nèi)存及虛擬內(nèi)存)來(lái)滿足使用需求,從而遇到過(guò)多的分頁(yè)時(shí),就會(huì)出現(xiàn)系統(tǒng)失效。系統(tǒng)將花更多的時(shí)間來(lái)分頁(yè)而不是執(zhí)行應(yīng)用程序。當(dāng)系統(tǒng)失效時(shí),Memory:Pages/see計(jì)數(shù)器將持續(xù)高于每秒100頁(yè)。系統(tǒng)失效嚴(yán)重降低了系統(tǒng)的性能。此外,動(dòng)態(tài)擴(kuò)展分頁(yè)文件將導(dǎo)致碎片化。分頁(yè)文件將散布在整個(gè)磁盤上而不是在啟動(dòng)時(shí)的連續(xù)空間中創(chuàng)建,從而增加了系統(tǒng)的開(kāi)銷,并導(dǎo)致系統(tǒng)性能降低。因此,應(yīng)該盡量避免系統(tǒng)增加分頁(yè)文件的大小。提示:1)WINDOWS中采用的虛擬存儲(chǔ)管理方案是請(qǐng)求頁(yè)式存儲(chǔ)管理,分頁(yè)文件就是我們?cè)碚n中所說(shuō)的交換/對(duì)換文件,存放的內(nèi)容是暫時(shí)被交換到外存中的進(jìn)程頁(yè)面。UNIX使用的是交換分區(qū),WINDOWS使用的是交換文件。2)在NTFS驅(qū)動(dòng)器上,總是至少保留25%的空閑驅(qū)動(dòng)器空間,以確??梢栽谶B續(xù)的空間中創(chuàng)建分頁(yè)文件。3)Windows2000使用內(nèi)存數(shù)量的1.5倍作為分頁(yè)文件的最小容量,這個(gè)最小容量的兩倍作為最大容量。它減少了系統(tǒng)因?yàn)殄e(cuò)誤配置的分頁(yè)文件而崩潰的可能性。系統(tǒng)在崩潰之后能夠?qū)?nèi)存轉(zhuǎn)儲(chǔ)寫入磁盤,所以系統(tǒng)分區(qū)必須有一個(gè)至少等于物理內(nèi)存數(shù)量加上1的分頁(yè)文件。 5、Windows虛擬內(nèi)存Windows2000是32位的操作系統(tǒng),它使計(jì)算機(jī)CPU可以用32位地址對(duì)32位內(nèi)存塊進(jìn)行操作。內(nèi)存中的每一個(gè)字節(jié)都可以用一個(gè)32位的指針來(lái)尋址。這樣,最大的存儲(chǔ)空間就是232字節(jié)或4000兆字節(jié)(4GB)。這樣,在Windows下運(yùn)行的每一個(gè)應(yīng)用程序都認(rèn)為能獨(dú)占可能的4GB大小的空間。而另一方面,實(shí)際上沒(méi)有幾臺(tái)機(jī)器的RAM能達(dá)到4GB,更不必說(shuō)讓每個(gè)進(jìn)程都獨(dú)享4GB內(nèi)存了。Windows在幕后將虛擬內(nèi)存(virtualmemory,VM)地址映射到了各進(jìn)程的物理內(nèi)存地址上。而所謂物理內(nèi)存是指計(jì)算機(jī)的RAM和由Windows分配到用戶驅(qū)動(dòng)器根目錄上的換頁(yè)文件。物理內(nèi)存完全由系統(tǒng)管理。在Windows2000環(huán)境下,4GB的虛擬地址空間被劃分成兩個(gè)部分:低端2GB提供給進(jìn)程使用,高端2GB提供給系統(tǒng)使用。這意味著用戶的應(yīng)用程序代碼,包括DLL以及進(jìn)程使用的各種數(shù)據(jù)等,都裝在用戶進(jìn)程地址空間內(nèi)(低端2GB)。用戶進(jìn)程的虛擬地址空間也被分成三部分:1)虛擬內(nèi)存的已調(diào)配區(qū)(committed):具有備用的物理內(nèi)存,根據(jù)該區(qū)域設(shè)定的訪問(wèn)權(quán)限,用戶可以進(jìn)行寫、讀或在其中執(zhí)行程序等操作。2)虛擬內(nèi)存的保留區(qū)(reserved):沒(méi)有備用的物理內(nèi)存,但有一定的訪問(wèn)權(quán)限。3)虛擬內(nèi)存的自由區(qū)(free):不限定其用途,有相應(yīng)的PAGE_NOACCESS權(quán)限。與虛擬內(nèi)存區(qū)相關(guān)的訪問(wèn)權(quán)限告知系統(tǒng)進(jìn)程可在內(nèi)存中進(jìn)行何種類型的操作。例如,用戶不能在只有PAGE_READONLY權(quán)限的區(qū)域上進(jìn)行寫操作或執(zhí)行程序;也不能在只有PAGE_EXECUTE權(quán)限的區(qū)域里進(jìn)行讀、寫操作。而具有PAGE_NOACCESS權(quán)限的特殊區(qū)域,則意味著不允許進(jìn)程對(duì)其地址進(jìn)行任何操作。在進(jìn)程裝入之前,整個(gè)虛擬內(nèi)存的地址空間都被設(shè)置為只有PAGE_NOACCESS權(quán)限的自由區(qū)域。當(dāng)系統(tǒng)裝入進(jìn)程代碼和數(shù)據(jù)后,才將內(nèi)存地址的空間標(biāo)記為已調(diào)配區(qū)或保留區(qū),并將諸如EXECUTE.READWRITE和READONLY的權(quán)限與這些區(qū)域相關(guān)聯(lián)。程序清單2-1還顯示了如何理解VirtualQueryEX()API填充的MEMORY_BASIC_INFORMATION結(jié)構(gòu),如表2-l所示。此數(shù)據(jù)描述了進(jìn)程虛擬內(nèi)存空間中一組虛擬內(nèi)存頁(yè)面的當(dāng)前狀態(tài)。其中State項(xiàng)表明
這些區(qū)域是否為自由區(qū)、已調(diào)配區(qū)或保留區(qū);Protect項(xiàng)則包含了Windows系統(tǒng)為這些區(qū)域添加了何種訪問(wèn)保護(hù);Type項(xiàng)則表明這些區(qū)域是可執(zhí)行圖像、內(nèi)存映射文件還是簡(jiǎn)單的私有內(nèi)存。VirtualQueryEX()API能讓用戶在指定的進(jìn)程中,對(duì)虛擬內(nèi)存地址的大小和屬性進(jìn)行檢測(cè)。表2-1MEMORYBASICINFORMATION結(jié)構(gòu)的成員成員名稱目的PVOIDBaseAddress虛擬內(nèi)存區(qū)域開(kāi)始處的指針PVOIDAllocationBase如果這個(gè)特定的區(qū)域?yàn)樽臃峙鋮^(qū)的話,則為虛擬內(nèi)存外面區(qū)域的指針;否則此值與BaseAddress相同DWORDAllocationProtect虛擬內(nèi)存最初分配區(qū)域的保護(hù)屬性。其可能值包括:PAGE_NOACCESS,PAGE_READONLY,PAGE_READWRITE和PAGE_EXECUTE_READDWORDRegionSize虛擬內(nèi)存區(qū)域的字節(jié)數(shù)DWORDState區(qū)域的當(dāng)前分配狀態(tài)。其可能值為MEM_COMMIT,MEM_FREE和MEM_RESERVEDWORDProtect虛擬內(nèi)存當(dāng)前區(qū)域的保護(hù)屬性??赡苤蹬cAllocationProtect成員的相同DWORDType虛擬內(nèi)存區(qū)域中出現(xiàn)的頁(yè)面類型??赡苤禐镸EMIMAGE,MEMMAPPED和MEMPRIVATEWindows還提供了一整套能使用戶精確控制應(yīng)用程序的虛擬地址空間的虛擬內(nèi)存API。一些用于虛擬內(nèi)存操作及檢測(cè)的API見(jiàn)表4-2所示。提供虛擬內(nèi)存分配功能的是VirtualAlloc()API。該API支持用戶向系統(tǒng)要求新的虛擬內(nèi)存或改變已分配內(nèi)存的當(dāng)前狀態(tài)。用戶若想通過(guò)VirtualAlloc()函數(shù)使用虛擬內(nèi)存,可以采用兩種方式通知系統(tǒng):1)簡(jiǎn)單地將內(nèi)存內(nèi)容保存在地址空間內(nèi);2)請(qǐng)求系統(tǒng)返回帶有物理存儲(chǔ)區(qū)(RAM的空間或換頁(yè)文件)的部分地址空間。用戶可以用flAllocationType參數(shù)(commit和reserve)來(lái)定義這些方式,用戶可以通知Windows按只讀、讀寫、不可讀寫、執(zhí)行或特殊方式來(lái)處理新的虛擬內(nèi)存。與VirtualAlloc()函數(shù)對(duì)應(yīng)的是VirtualFree()函數(shù),其作用是釋放虛擬內(nèi)存中的已調(diào)配頁(yè)或保留頁(yè)。用戶可利用dwFreeType參數(shù)將已調(diào)配頁(yè)修改成保留頁(yè)屬性。VirtualProtect()是VirtualA110c()的一個(gè)輔助函數(shù),利用它可以改變虛擬內(nèi)存區(qū)的保護(hù)規(guī)范。表2-2虛擬內(nèi)存的APIAPI名稱描述VirtualQueryEx()通過(guò)填充MEMORY_BASIC_INFORMATION結(jié)構(gòu)檢測(cè)進(jìn)程內(nèi)虛擬內(nèi)存的區(qū)域VirtualAlloc()保留或調(diào)配進(jìn)程的部分虛擬內(nèi)存,設(shè)置分配和保護(hù)標(biāo)志VirtualFree()釋放或收回應(yīng)用程序使用的部分虛擬地址VirtualProtect()改變虛擬內(nèi)存區(qū)域保護(hù)規(guī)范VirtualLock()防止系統(tǒng)將虛擬內(nèi)存區(qū)域通過(guò)系統(tǒng)交換到頁(yè)面文件中VirtualUnlock()釋放虛擬內(nèi)存的鎖定區(qū)域,必要時(shí),允許系統(tǒng)將其交換到頁(yè)面文件中實(shí)驗(yàn)?zāi)康?、通過(guò)對(duì)Windows2000“任務(wù)管理器”、“計(jì)算機(jī)管理”、“我的電腦”屬性、“系統(tǒng)信息”、“系統(tǒng)監(jiān)視器”等程序的應(yīng)用,學(xué)習(xí)如何察看和調(diào)整Windows的內(nèi)存性能,加深對(duì)操作系統(tǒng)存儲(chǔ)管理、虛擬存儲(chǔ)管理等理論知識(shí)的理解。2、了解Windows2000的內(nèi)存結(jié)構(gòu)和虛擬內(nèi)存的管理,理解進(jìn)程的虛擬內(nèi)存空間和物理內(nèi)存的映射關(guān)系。實(shí)驗(yàn)內(nèi)容和步驟(1)觀察和調(diào)整Windows2000/XP的內(nèi)存性能。步驟1:閱讀“背景知識(shí)”,請(qǐng)回答:1)什么是“分頁(yè)過(guò)程”?當(dāng)Windows2000/XP求助于硬盤以獲得虛擬內(nèi)存時(shí),這個(gè)過(guò)程被稱為分頁(yè)(paging)。分頁(yè)就是將信息從主內(nèi)存移動(dòng)到磁盤進(jìn)行臨時(shí)存2)什么是“內(nèi)存共享”?Windows2000/XP必須允許訪問(wèn)某些內(nèi)存空間而不危及它和其他應(yīng)用程序的安全性和完整性。3)什么是“未分頁(yè)合并內(nèi)存”和“分頁(yè)合并內(nèi)存”?Windows2000中,未分頁(yè)合并內(nèi)存的最大限制是多少?未分頁(yè)合并內(nèi)存包含必須駐留在內(nèi)存中的占用代碼或數(shù)據(jù)。分頁(yè)合并內(nèi)存是存儲(chǔ)遲早需要的可分頁(yè)代碼或數(shù)據(jù)的內(nèi)存部分。雖然可以將分頁(yè)合并內(nèi)存中的任何系統(tǒng)進(jìn)程交換到磁盤上,但是它臨時(shí)存儲(chǔ)在主內(nèi)存的這一部分,以防系統(tǒng)立刻需要它。在將系統(tǒng)進(jìn)程交換到磁盤上之前,Windows2000/XP會(huì)交換其他進(jìn)程。Windows2000中,未分頁(yè)合并內(nèi)存的最大限制是多少?Windows2000/XP將未分頁(yè)合并內(nèi)存限制為256MB(在WindowsNT4中的限制為128MB)。Windows2000分頁(yè)文件默認(rèn)設(shè)置的最小容量和最大容量是多少?Windows2000使用內(nèi)存數(shù)量的1.5倍作為分頁(yè)文件的最小容量,這個(gè)最小容量的兩倍作為最大容量。步驟2:登錄進(jìn)入Windows2000Professional。步驟3:查看包含多個(gè)實(shí)例的應(yīng)用程序的內(nèi)存需求。1)啟動(dòng)想要監(jiān)視的應(yīng)用程序,例如Word。2)右鍵單擊任務(wù)欄以啟動(dòng)“任務(wù)管理器”。3)在“Windows任務(wù)管理器”對(duì)話框中選定“進(jìn)程”選項(xiàng)卡。4)向下滾動(dòng)在系統(tǒng)上運(yùn)行的進(jìn)程列表,查找想要監(jiān)視的應(yīng)用程序。請(qǐng)?jiān)诒?-3中記錄:表2-3實(shí)驗(yàn)記錄映像名稱PIDCPUCPU時(shí)間內(nèi)存使用WINWORD.EXE5160000:00:1022772k“內(nèi)存使用”列顯示了該應(yīng)用程序的一個(gè)實(shí)例正在使用的內(nèi)存數(shù)量。5)啟動(dòng)應(yīng)用程序的另一個(gè)實(shí)例并觀察它的內(nèi)存需求。請(qǐng)描述使用第二個(gè)實(shí)例占用的內(nèi)存與使用第一個(gè)實(shí)例時(shí)的內(nèi)存對(duì)比情況:大致相同步驟4:未分頁(yè)合并內(nèi)存。估算未分頁(yè)合并內(nèi)存大小的最簡(jiǎn)單方法是使用“任務(wù)管理器”。未分頁(yè)合并內(nèi)存的估計(jì)值顯示在“任務(wù)管理器”的“性能”選項(xiàng)卡的“核心內(nèi)存”部分??倲?shù)(K):433(MB)分頁(yè)數(shù):298未分頁(yè)(K):135(MB)還可以使用“任務(wù)管理器”查看一個(gè)獨(dú)立進(jìn)程正在使用的未分頁(yè)合并內(nèi)存數(shù)量和分頁(yè)合并內(nèi)存數(shù)量。操作步驟如下:1)單擊“Windows任務(wù)管理器”的“進(jìn)程”選項(xiàng)卡,然后從“查看”菜單中選擇“選擇列”命令,顯示“進(jìn)程”選項(xiàng)卡的可查看選項(xiàng)。2)在“選擇列”對(duì)話框中,選定“頁(yè)面緩沖池”選項(xiàng)和“非頁(yè)面緩沖池”選項(xiàng)旁邊的復(fù)選框,然后單擊“確定”按鈕。返回Windows2000“任務(wù)管理器”的“進(jìn)程”選項(xiàng)卡時(shí),將看到其中增加顯示了各個(gè)進(jìn)程占用的分頁(yè)合并內(nèi)存數(shù)量和未分頁(yè)合并內(nèi)存數(shù)量。仍以剛才打開(kāi)觀察的應(yīng)用程序(例如Word)為例,請(qǐng)?jiān)诒?-4中記錄:表2-4實(shí)驗(yàn)記錄映像名稱PID內(nèi)存使用頁(yè)面緩沖池非頁(yè)面緩沖池WINWORD.EXE29643748895142從性能的角度來(lái)看,未分頁(yè)合并內(nèi)存越多,可以加載到這個(gè)空間的數(shù)據(jù)就越多。擁有的物理內(nèi)存越多,未分頁(yè)合并內(nèi)存就越多。但未分頁(yè)合并內(nèi)存被限制為256MB,因此添加超出這個(gè)限制的內(nèi)存對(duì)未分頁(yè)合并內(nèi)存沒(méi)有影響。步驟5:提高分頁(yè)性能。在Windows2000的安裝過(guò)程中,將使用連續(xù)的磁盤空間自動(dòng)創(chuàng)建分頁(yè)文件(pagefile.sys)。用戶可以事先監(jiān)視變化的內(nèi)存需求并正確配置分頁(yè)文件,使得當(dāng)系統(tǒng)必須借助于分頁(yè)時(shí)的性能達(dá)到最高。雖然分頁(yè)文件一般都放在系統(tǒng)分區(qū)的根目錄下面,但這并不總是該文件的最佳位置。要想從分頁(yè)獲得最佳性能,應(yīng)該首先檢查系統(tǒng)的磁盤子系統(tǒng)的配置,以了解它是否有多個(gè)物理硬盤驅(qū)動(dòng)器。1)在“開(kāi)始”菜單中單擊“設(shè)置”“控制面板”命令,雙擊“管理工具”圖標(biāo),再雙擊“計(jì)算機(jī)管理”圖標(biāo)。2)在“計(jì)算機(jī)管理”窗口的左格選擇“磁盤管理”管理單元來(lái)查看系統(tǒng)的磁盤配置。如果系統(tǒng)只有一個(gè)硬盤,那么建議應(yīng)該盡可能為系統(tǒng)配置額外的驅(qū)動(dòng)器。這是因?yàn)椋篧indows2000最多可以支持在多個(gè)驅(qū)動(dòng)器上分布的16個(gè)獨(dú)立的分頁(yè)文件。為系統(tǒng)配置多個(gè)分頁(yè)文件可以實(shí)現(xiàn)對(duì)不同磁盤I/O請(qǐng)求的并行處理,這將大大提高I/O請(qǐng)求的分頁(yè)文件性能。請(qǐng)?jiān)诒?-5中記錄:表2-5實(shí)驗(yàn)記錄卷布局類型文件系統(tǒng)容量狀態(tài)C簡(jiǎn)單基本NTFS30G良好D簡(jiǎn)單基本NTFS90G良好E簡(jiǎn)單基本NTFS90G良好F簡(jiǎn)單基本NTFS88G良好步驟6:計(jì)算分頁(yè)文件的大小。要想更改分頁(yè)文件的位置或大小配置參數(shù),可按以下步驟進(jìn)行:1)右鍵單擊桌面上的“我的電腦”圖標(biāo)并選定“屬性”。2)在“高級(jí)”選項(xiàng)卡上單擊“性能選項(xiàng)”按鈕。3)單擊對(duì)話框中的“虛擬內(nèi)存”區(qū)域中的“更改”按鈕。請(qǐng)記錄:所選驅(qū)動(dòng)器(C:)的頁(yè)面文件大?。候?qū)動(dòng)器:C:可用空間」38550MB初始大小(mb):4096MB最大值(mb):8192MB所有驅(qū)動(dòng)器頁(yè)面文件大小的總數(shù):允許的最小值:16mb推薦:3535mb當(dāng)前已分配:4096mb4)要想將另一個(gè)分頁(yè)文件添加到現(xiàn)有配置,在“虛擬內(nèi)存”對(duì)話框中選定一個(gè)還沒(méi)有分頁(yè)文件的驅(qū)動(dòng)器,然后指定分頁(yè)文件的初始值和最大值(以兆字節(jié)表示),單擊“設(shè)置”,然后單擊“確定”。5)要想更改現(xiàn)有分頁(yè)文件的最大值和最小值,可選定分頁(yè)文件所在的驅(qū)動(dòng)器。然后指定分頁(yè)文件的初始值和最大值,單擊“設(shè)置”按鈕,然后單擊“確定”按鈕。6)在“性能選項(xiàng)”對(duì)話框中單擊“確定”按鈕。7)單擊“確定”按鈕以關(guān)閉“系統(tǒng)特性”對(duì)話框。步驟7:使用任務(wù)管理器??梢允褂谩叭蝿?wù)管理器”來(lái)簡(jiǎn)單地檢查分頁(yè)文件是否配置了正確容量。這樣可以實(shí)時(shí)提供系統(tǒng)正在使用分頁(yè)文件的方式以及其他重要系統(tǒng)信息的準(zhǔn)確描述。通過(guò)右鍵單擊任務(wù)欄運(yùn)行“任務(wù)管理器”,選定“性能”選項(xiàng)卡查看實(shí)時(shí)的系統(tǒng)統(tǒng)計(jì)數(shù)據(jù)。與分頁(yè)文件大小最有關(guān)的信息位于“認(rèn)可用量”區(qū)域。這一區(qū)域顯示了認(rèn)可“峰值”是否達(dá)到或超過(guò)了認(rèn)可“限制”,以及它是否超過(guò)了系統(tǒng)上的物理內(nèi)存數(shù)量。認(rèn)可“峰值”是指系統(tǒng)迄今為止向進(jìn)程分配的最大物理內(nèi)存和虛擬內(nèi)存數(shù)量。請(qǐng)記錄:物理內(nèi)存(K)總數(shù):3HIH可用數(shù):I2HH系統(tǒng)緩存:H(2)了解和檢測(cè)進(jìn)程的虛擬內(nèi)存空間。步驟1:創(chuàng)建一個(gè)“Win32ConsolApplication”工程,然后拷貝清單4-1中的程序,編譯成可執(zhí)行文件。步驟2:在VC的工具欄單擊“ExecuteProgram"(執(zhí)行程序)按鈕,或者按Ctrl+F5鍵,或者在“命令提示符”窗口運(yùn)行步驟1中生成的可執(zhí)行文件。范例:E:\課程\os課\os實(shí)驗(yàn)、程序\os11\debug>os41(假設(shè)編譯生成的可執(zhí)行文件是os41.exe)步驟3:根據(jù)運(yùn)行結(jié)果,回答下列問(wèn)題虛擬內(nèi)存每頁(yè)容量為:4KB最小應(yīng)用地址:0x00010000最大應(yīng)用地址:0x7ffeffff當(dāng)前可供應(yīng)用程序使用的內(nèi)存空間為:1.99GB當(dāng)前計(jì)算機(jī)的實(shí)際內(nèi)存大小為:3.9GB理論上每個(gè)Windows應(yīng)用程序可以獨(dú)占的最大存儲(chǔ)空間是:3.9GB提示:可供應(yīng)用程序使用的內(nèi)存空間實(shí)際上已經(jīng)減去了開(kāi)頭與結(jié)尾兩個(gè)64KB的保護(hù)區(qū)。虛擬內(nèi)存空間中的64KB保護(hù)區(qū)是防止編程錯(cuò)誤的一種Windows方式。任何對(duì)內(nèi)存中這一區(qū)域的訪問(wèn)(讀、寫、執(zhí)行)都將引發(fā)一個(gè)錯(cuò)誤陷阱,從而導(dǎo)致錯(cuò)誤并終止程序的執(zhí)行。按committed、reserved、free等三種虛擬地址空間分別記錄實(shí)驗(yàn)數(shù)據(jù)。其中“描述”是指對(duì)該組數(shù)據(jù)的簡(jiǎn)單描述,例如,對(duì)下列一組數(shù)據(jù):0001000000012000 <8.00KB>Committed,READWRITE,00010000Private可描述為:具有READWRITE權(quán)限的已調(diào)配私有內(nèi)存區(qū)。將系統(tǒng)當(dāng)前的自由區(qū)(free)虛擬地址空間填入表2-6中。表2-6實(shí)驗(yàn)記錄地址大小虛擬地址空間類型訪問(wèn)權(quán)限描述00010000-00a9000010.5MBfreeNOACCESS00aae000-00ab00008.00KBfreeNOACCESS00ab1000-00ac000060.0KBfreeNOACCESS00ac9000-00ad000028.0KBfreeNOACCESS00c14000-00c2000048KBfreeNOACCESS00c21000-00c3000060KBfreeNOACCESS00c32000-00c4000056KBfreeNOACCESS00cb5000-00cc000044KBfreeNOACCESS00cc1000-00cd000060KBfreeNOACCESS00cd3000-00ce000052KBfreeNOACCESS00cf1000-00d20000188KBfreeNOACCESS00da0000-00e80000896KBfreeNOACCESS01108000-0111000032KBfreeNOACCESS01291000-01330000636KBfreeNOACCESS01355000-0136000044KBfreeNOACCESS
02ae1000-5f5500001.44GBfreeNOACCESS5f70f000-5f7100004.00KBfreeNOACCESS5f7d9000-6a570000173MBfreeNOACCESS6a689000-748e000162MBfreeNOACCESS74987000-74cf00003.41MBfreeNOACCESS74d65000-74ec00001.35MBfreeNOACCESS74f11000-74f2000060.0KBfreeNOACCESS74f29000-74f3000028.0KBfreeNOACCESS74f4c0000-74f5000016.0KBfreeNOACCESS75424000-759800005.35MBfreeNOACCESS提示:詳細(xì)記錄實(shí)驗(yàn)數(shù)據(jù)在實(shí)驗(yàn)活動(dòng)中是必要的,但想想是否可以簡(jiǎn)化記錄的辦法?將系統(tǒng)當(dāng)前的已調(diào)配區(qū)(committed)虛擬地址空間填入表2-7
中。表2-7實(shí)驗(yàn)記錄地址大小虛擬地址空間類型訪問(wèn)權(quán)限描述00a90000-00aa000064.0KBcommittedREADWRITEMapped00aa0000-00aa10004.00KBcommittedREADWRITEPrivate00ab0000-00ab10004.00KBcommittedREADWRITEPrivate00ac0000-00ac900036.0KBcommittedREADONLYMapped
00b05000-00b0800012.0KBcommittedGUARD,READWRITEPrivate00b08000-00b1000032.0KBcommittedREADWRITEPrivate00c09000-00c0b0008KBcommittedGUARD,READWRITEPrivate00c0b000-00c1000020KBcommittedREADWRITEPrivate00c10000-00c1400016KBcommittedREADONLYMapped00c20000-00c210004.0KBcommittedREADONLYMapped00c30000-00c320008.0KBcommittedREADWRITEPrivate00c40000-00cb5000468KBcommittedREADONLYMapped00cc0000-00cc10004.0KBcommittedREADWRITEPrivate00cd0000-00cd300012KBcommittedREADONLYMapped00ce0000-00ce30004.0KBcommittedREADWRITEMapped00cf0000-00cf100024KBcommittedREADWRITEPrivate00d20000-00d26000128KBcommittedREADWRITEPrivate00e80000-00ea000012KBcommittedREADONLYMapped00f80000-00f890001.50MBcommittedREADONLYMapped01100000-011030004KBcommittedREADONLYImage,Moudle:4_1.exe01110000-0129100064KBcommittedEXECUTE_WRITECOPYImage01330000-0133100012KBcommittedEXECUTE_READImage01331000-013410004KBcommittedREADWRITEImage01341000-0134d00016KBcommittedREADONLYImage0134d000-01350000476KBcommittedREADONLYMapped將系統(tǒng)當(dāng)前的保留區(qū)(reserved)虛擬地址空間填入表2-8中。表2-8實(shí)驗(yàn)記錄地址大小虛擬地址空間類型訪問(wèn)權(quán)限描述00aa1000-00aae00052.0KBreservedREADONLYPrivate00ad0000-00b05000212KBreservedREADONLYPrivate00b10000-00c09000996KBreservedREADONLYPrivate00ce3000-00cf000052KBreservedREADONLYPrivate00d26000-00da0000488KBreservedREADONLYPrivate00ea0000-00f80000896KBreservedREADONLYPrivate00f89000-011000001.46MBreservedREADONLYMapped01103000-0110800020KBreservedREADONLYMapped013d7000-0276000019.5MBreservedREADONLYMapped75b21000-75b3000060.0KBreservedREADONLYImage75b9a000-75ba000024.0KBreservedREADONLYImage75c0f000-75c100004.0KBreservedREADONLYImage75c12000-75c2000056KBreservedREADONLYImage75c21000-75c3000060.0KBreservedREADONLYImage75c42000-75c5000056.0KBreservedREADONLYImage7ecc5000-7edc00000.98MBreservedREADONLYMapped7ffe1000-7ffff000060.0KBreservedREADONLYPrivate實(shí)驗(yàn)結(jié)論簡(jiǎn)單描述windows進(jìn)程的虛擬內(nèi)存管理方案:虛擬地址是將邏輯地址映射到物理地址的一種手段,管理方案有:請(qǐng)求分頁(yè)、請(qǐng)求分段和請(qǐng)求段頁(yè)虛擬存儲(chǔ)管理?請(qǐng)求分頁(yè):將進(jìn)程的信息副本存放在輔助存儲(chǔ)器中,當(dāng)它被調(diào)度投入運(yùn)行時(shí),并不把程序和數(shù)據(jù)全部裝入主存,僅裝入當(dāng)前使用的頁(yè)面,進(jìn)程在執(zhí)行過(guò)程中訪問(wèn)到不在主存的頁(yè)時(shí),再把所需的信息動(dòng)態(tài)的裝入?請(qǐng)求分段:把作業(yè)的所有分段的副本都存放在輔助存儲(chǔ)器上,當(dāng)作業(yè)被調(diào)度投入運(yùn)行時(shí),首先把當(dāng)前需要的段裝入主存,在執(zhí)行過(guò)程中訪問(wèn)到不在主存的段時(shí)再將其動(dòng)態(tài)裝入。請(qǐng)求段頁(yè)式虛擬存儲(chǔ)管理:對(duì)段式存儲(chǔ)和頁(yè)式存儲(chǔ)的優(yōu)點(diǎn)結(jié)合。程序清單清單2-5了解和檢測(cè)進(jìn)程的虛擬內(nèi)存空間//工程vmwalker#include<windows.h>#include<iostream>#include<shlwapi.h>#include<iomanip>#pragmacomment(lib,"Shlwapi.lib")//以可讀方式對(duì)用戶顯示保護(hù)的輔助方法?!ūWo(hù)標(biāo)記表示允許應(yīng)用程序?qū)?nèi)存進(jìn)行訪問(wèn)的類型//以及操作系統(tǒng)強(qiáng)制訪問(wèn)的類型inlineboolTestSet(DWORDdwTarget,DWORDdwMask){return((dwTarget&dwMask)==dwMask);)#defineSHOWMASK(dwTarget,type)\if(TestSet(dwTarget,PAGE_##type))\{std::cout<<","<<#type;}voidShowProtection(DWORDdwTarget){SHOWMASK(dwTarget,READONLY);SHOWMASK(dwTarget,GUARD);SHOWMASK(dwTarget,NOCACHE);SHOWMASK(dwTarget,READWRITE);SHOWMASK(dwTarget,WRITECOPY);
SHOWMASK(dwTarget,EXECUTE);SHOWMASK(dwTarget,EXECUTE_READ);SHOWMASK(dwTarget,EXECUTE_READWRITE)SHOWMASK(dwTarget,EXECUTE_WRITECOPY)SHOWMASK(dwTarget,NOACCESS);//遍歷整個(gè)虛擬內(nèi)存并對(duì)用戶顯示其屬性的工作程序的方法voidWalkVM(HANDLEhProcess){//首先,獲得系統(tǒng)信息SYSTEM_INFOsi;::ZeroMemory(&si,sizeof(si));::GetSystemInfo(&si);//分配要存放信息的緩沖區(qū)MEMORY_BASIC_INFORMATIONmbi;::ZeroMemory(&mbi,sizeof(mbi));〃循環(huán)整個(gè)應(yīng)用程序地址空間LPCVOIDpBlock=(LPVOID)si.lpMinimumApplicationAddress;while(pBlock<si.lpMaximumApplicationAddress)//獲得下一個(gè)虛擬內(nèi)存塊的信息if(::VirtualQueryEx(hProcess,pBlock,&mbi,sizeof(mbi))==sizeof(mbi))//if(::VirtualQueryEx(hProcess,pBlock,&mbi,sizeof(mbi))==sizeof(mbi))//相關(guān)的進(jìn)程//開(kāi)始位置//緩沖區(qū)//大小的確認(rèn)//計(jì)算塊的結(jié)尾及其大小LPCVOIDpEnd//計(jì)算塊的結(jié)尾及其大小LPCVOIDpEnd=(PBYTE)pBlock+mbi.RegionSize;TCHARszSize[MAX_PATH];::StrFormatByteSize(mbi.RegionSize,szSize,MAX_PATH);//顯示塊地址和大小std::cout.fill('0');std::cout<std::hex<<std::setw(8)<<(DWORD)pBlock<〃-〃<std::hex<<std::setw(8)<<(DWORD)pEnd<(::strlen(szSize)==7?"(":"(")<<szSize<〃)〃;//顯示塊的狀態(tài)switch(mbi.State){caseMEM_COMMIT:std::cout<<"Committed"break;caseMEM_FREE://顯示塊的狀態(tài)switch(mbi.State){caseMEM_COMMIT:std::cout<<"Committed"break;caseMEM_FREE:std::cout<<“Free";bre
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- PB-22-8-Hydroxyisoquinoline-isomer-生命科學(xué)試劑-MCE-5052
- Lariciresinol-4-O-β-D-glucopyranoside-生命科學(xué)試劑-MCE-5846
- E3-Ligase-Ligand-linker-Conjugate-122-生命科學(xué)試劑-MCE-1944
- 二零二五年度航空航天產(chǎn)業(yè)融資合作協(xié)議書(shū)
- 二零二五年度用人單位與派遣公司國(guó)際化人才派遣服務(wù)協(xié)議
- 2025年度音樂(lè)制作與音樂(lè)版權(quán)許可合同
- 2025年度活動(dòng)板房銷售與臨時(shí)辦公場(chǎng)所租賃合同
- 二零二五年度商業(yè)地產(chǎn)貸款合同范本
- 2025年度飯店短期餐飲服務(wù)員勞務(wù)派遣協(xié)議
- 二零二五年度工業(yè)用地使用權(quán)整體轉(zhuǎn)讓合同
- 四年級(jí)數(shù)學(xué)上冊(cè)口算天天練4
- 蘇教版二年級(jí)數(shù)學(xué)寒假輔導(dǎo)提高班課件 第1講 眼花繚亂的數(shù)據(jù)(66張PPT)
- 水利水電工程監(jiān)理平行檢測(cè)表部分
- 分部分項(xiàng)工程質(zhì)量檢驗(yàn)計(jì)劃表
- 社區(qū)衛(wèi)生服務(wù)中心醫(yī)療服務(wù)推薦病-2023版1-4-10
- HY/T 266-2018外壓中空纖維超濾膜表面親水性的測(cè)試接觸角法
- 【英文原版小說(shuō)】the things they carried《負(fù)荷》
- 領(lǐng)導(dǎo)干部如何管理壓力與情緒課件
- 2022-2023年度神農(nóng)中華農(nóng)業(yè)科技獎(jiǎng)科研和科普類推薦書(shū)和摘要表(樣本)
- 《鄉(xiāng)土中國(guó)-差序格局》學(xué)案-統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 大學(xué)成績(jī)單中文(word版)
評(píng)論
0/150
提交評(píng)論