版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、虛擬內(nèi)存管理器(VMM)性能概述虛擬內(nèi)存管理器(VMM)性能概述虛擬地址空間劃分成段。每段的大小是256MB,它是虛擬內(nèi)存地址空間中一個(gè)鄰接的部分,數(shù)據(jù)對(duì)象可映射到該空間。進(jìn)程對(duì)數(shù)據(jù)的尋址能力按段(或?qū)ο螅┑募?jí)別進(jìn)行管理,所以段既可以在進(jìn)程間共享,也可以進(jìn)行專門維護(hù)。例如,進(jìn)程可共享代碼段但擁有獨(dú)立和專用的數(shù)據(jù)段。實(shí)際內(nèi)存管理虛擬內(nèi)存段劃分成固定大小的單元叫做頁(yè)。缺省頁(yè)面大小是4096字節(jié)。某些系統(tǒng)也支持大頁(yè)面,通常只能通過(guò)系統(tǒng)調(diào)用sh
2、mat訪問(wèn)。段中的每頁(yè)在需要之前可位于實(shí)際內(nèi)存(RAM)中,或存儲(chǔ)在磁盤上。同樣,實(shí)際內(nèi)存也可以劃分成4096字節(jié)的頁(yè)面幀。VMM的角色是管理分配實(shí)際內(nèi)存頁(yè)面幀并且解析程序?qū)μ摂M內(nèi)存頁(yè)面的引用,這些頁(yè)面當(dāng)前不在實(shí)際內(nèi)存中或還不存在(例如,當(dāng)進(jìn)程第一次引用其數(shù)據(jù)段的某一頁(yè)時(shí))。因?yàn)樵谌魏谓o定時(shí)刻使用的虛擬內(nèi)存數(shù)量可能比實(shí)際內(nèi)存大,所以VMM必須將余量存儲(chǔ)在磁盤上。從性能的觀點(diǎn)來(lái)看,VMM有兩個(gè)稍微對(duì)立的目標(biāo):最小化使用虛擬內(nèi)存的總處理器時(shí)
3、間和磁盤帶寬代價(jià)最小化缺頁(yè)故障的響應(yīng)時(shí)間代價(jià)在跟蹤這些目標(biāo)時(shí),VMM維護(hù)一個(gè)頁(yè)面幀的空閑列表,它可用于補(bǔ)償缺頁(yè)故障。VMM使用了一個(gè)頁(yè)面替換算法來(lái)確定當(dāng)前處于內(nèi)存中的哪些虛擬內(nèi)存頁(yè)要將它們的頁(yè)面幀重新指定到空閑列表中。頁(yè)面替換算法使用了幾個(gè)機(jī)制:虛擬內(nèi)存段分成持久段或工作段。虛擬內(nèi)存段分成包含計(jì)算內(nèi)存或文件內(nèi)存。跟蹤在訪問(wèn)時(shí)引起缺頁(yè)故障的虛擬內(nèi)存頁(yè)。缺頁(yè)故障分成新頁(yè)故障或重新調(diào)頁(yè)故障。在每個(gè)虛擬內(nèi)存段中維護(hù)一個(gè)重新調(diào)頁(yè)故障率的統(tǒng)計(jì)信息。
4、用戶可調(diào)閾值影響頁(yè)面替換算法的結(jié)果。以下各節(jié)較詳細(xì)地描述了空閑列表和頁(yè)面替換機(jī)制??臻e列表VMM維護(hù)一個(gè)空閑頁(yè)面幀的邏輯列表,它用于解決缺頁(yè)故障。在絕大多數(shù)環(huán)境中,VMM偶爾必須通過(guò)重新指定由運(yùn)行進(jìn)程占有的一些頁(yè)面幀來(lái)添加到空閑列表中。需要重新指定頁(yè)面幀的虛擬內(nèi)存頁(yè)由VMM的頁(yè)面替換算法進(jìn)行選擇。VMM閾值決定了重新指定的幀的數(shù)量。持久段與工作段對(duì)比持久段的頁(yè)面在磁盤上的存儲(chǔ)位置是永久性的。包含數(shù)據(jù)或可執(zhí)行程序的文件映射到持久段中。因?yàn)?/p>
5、持久段的每一頁(yè)都有永久的磁盤存儲(chǔ)位置,所以當(dāng)頁(yè)面被更改且不能再留在實(shí)際內(nèi)存中時(shí),VMM將該頁(yè)寫回到那個(gè)位置。當(dāng)頁(yè)面被選擇放置到空閑列表中時(shí),如果它沒(méi)有更改過(guò)則不需要IO操作。如果后來(lái)再次引用到該頁(yè),那么就從它的永久磁盤存儲(chǔ)位置讀入一個(gè)新副本。工作段是暫時(shí)的,它們僅在由進(jìn)程使用時(shí)才存在,且沒(méi)有永久的磁盤存儲(chǔ)位置。進(jìn)程堆棧和數(shù)據(jù)區(qū)域映射到工作段,這一點(diǎn)和內(nèi)核文本段、內(nèi)核擴(kuò)展文本段、共享庫(kù)文本段和數(shù)據(jù)段相同。當(dāng)工作段的頁(yè)面不能保存在實(shí)際內(nèi)存中
6、時(shí),它們也必須占有磁盤存儲(chǔ)位置。磁盤調(diào)頁(yè)空間就是用于這個(gè)目的。下列插圖顯示某些類型的段和它們的頁(yè)面在磁盤上的位置之間的關(guān)系。它還顯示了頁(yè)面在實(shí)際內(nèi)存中時(shí)實(shí)際(專有)的位置。圖形持久和工作存儲(chǔ)段.該插圖顯示某些類型的段和它們的頁(yè)面在磁盤上的位置之間的關(guān)系。它還顯示了頁(yè)面在實(shí)際內(nèi)存中時(shí)實(shí)際(專有)的位置。工作段是暫時(shí)的,這意味著它們僅在由進(jìn)程使用時(shí)才存在并且沒(méi)有永久的磁盤存儲(chǔ)位置。進(jìn)程堆棧和數(shù)據(jù)區(qū)域映射到工作段,這一點(diǎn)和內(nèi)核文本段、內(nèi)核擴(kuò)展
7、文本段、共享庫(kù)文本段和數(shù)據(jù)段相同。當(dāng)工作段的頁(yè)面不能保存在實(shí)際內(nèi)存中時(shí),它們也必須占有磁盤存儲(chǔ)位置。磁盤調(diào)頁(yè)空間就是用于這個(gè)目的。引用)和重新調(diào)頁(yè)故障(引用已經(jīng)調(diào)出的頁(yè))。然后它可以盡量平衡文件(持久數(shù)據(jù))頁(yè)面的調(diào)出和計(jì)算(工作存儲(chǔ)器或程序文本)頁(yè)面的調(diào)出。當(dāng)進(jìn)程退出時(shí),它的工作存儲(chǔ)器立刻釋放并且它的關(guān)聯(lián)內(nèi)存幀也放回到空閑列表中。然而由該進(jìn)程打開(kāi)的任何文件可保留在內(nèi)存中。如果線程在單處理器上運(yùn)行,那么頁(yè)面替換可直接在線程作用域中進(jìn)行。在
8、多處理器系統(tǒng)中,頁(yè)面替換通過(guò)內(nèi)核進(jìn)程lrud進(jìn)行,在達(dá)到閾值minfree時(shí),該進(jìn)程被分派到CPU中。從AIX4.3.3開(kāi)始,內(nèi)核進(jìn)程lrud是多線程的,每個(gè)存儲(chǔ)池中一個(gè)線程。根據(jù)CPU數(shù)量和RAM大小將實(shí)際內(nèi)存劃分成平均大小的存儲(chǔ)池。系統(tǒng)中存儲(chǔ)池的數(shù)量可通過(guò)運(yùn)行命令vmtuneA來(lái)確定。在AIX4.3.3和后續(xù)版本中,使用命令vmtunem更改存儲(chǔ)池?cái)?shù)量,這將在系統(tǒng)引導(dǎo)時(shí)進(jìn)行配置。數(shù)值minfree和maxfree在命令vmtune的
9、輸出中,它們是每個(gè)存儲(chǔ)池的minfree和maxfree的總和。重新調(diào)頁(yè)缺頁(yè)故障要么是新頁(yè)故障要么是重新調(diào)頁(yè)故障。如果沒(méi)有最近引用頁(yè)面的記錄的話,會(huì)出現(xiàn)一個(gè)新頁(yè)故障。而出現(xiàn)重新調(diào)頁(yè)故障是指一個(gè)知道其最近已經(jīng)引用的頁(yè)再次被引用,但由于該頁(yè)在上次訪問(wèn)后已經(jīng)被替換(可能寫到磁盤上)而在內(nèi)存中找不到它。理想的頁(yè)面替換策略通過(guò)總是替換那些不會(huì)再次引用的頁(yè)面幀而完全減少重新調(diào)頁(yè)故障(假設(shè)有足夠的實(shí)際內(nèi)存)。因而重新調(diào)頁(yè)故障數(shù)是頁(yè)面替換算法有效性的一
10、個(gè)相反評(píng)測(cè)標(biāo)準(zhǔn),算法將頻繁被重用的頁(yè)面保存在內(nèi)存中,從而降低了總體IO需求并潛在地改善了系統(tǒng)性能。為了分清一個(gè)缺頁(yè)故障是新頁(yè)故障還是重新調(diào)頁(yè)故障,VMM維護(hù)一個(gè)重新調(diào)頁(yè)歷史記錄緩沖區(qū),它包含N個(gè)最近缺頁(yè)故障的頁(yè)面標(biāo)識(shí),其中N是內(nèi)存可保留的幀數(shù)。例如,512MB內(nèi)存需要一個(gè)128KB的重新調(diào)頁(yè)歷史記錄緩沖區(qū)。在頁(yè)面調(diào)進(jìn)時(shí),如果它的標(biāo)識(shí)可在重新調(diào)頁(yè)歷史記錄緩沖區(qū)中找到,則將它計(jì)為一個(gè)重新調(diào)頁(yè)。VMM還可以分別評(píng)估計(jì)算內(nèi)存重新調(diào)頁(yè)率和文件內(nèi)存
11、重新調(diào)頁(yè)率,只需為每種類型的內(nèi)存維護(hù)重新調(diào)頁(yè)故障計(jì)數(shù)即可。每次頁(yè)面替換算法運(yùn)行時(shí)都將重新調(diào)頁(yè)率乘以0.9,這樣可比歷史重新調(diào)頁(yè)活動(dòng)更有力地反映最近的重新調(diào)頁(yè)活動(dòng)。VMM閾值幾個(gè)數(shù)字閾值定義了VMM的目標(biāo)。當(dāng)超出這些閾值中的一個(gè)時(shí),VMM會(huì)采取適當(dāng)?shù)牟僮鲗?nèi)存狀態(tài)恢復(fù)到限定范圍內(nèi)。本節(jié)討論的閾值可由系統(tǒng)管理員用命令vmtune進(jìn)行更改??臻e列表中頁(yè)面幀的數(shù)量受下列參數(shù)控制:minfree空閑列表中可接受的實(shí)際內(nèi)存頁(yè)面幀的最小數(shù)量。當(dāng)空閑列
12、表的大小低于這個(gè)數(shù)時(shí),VMM開(kāi)始替換頁(yè)面。它將一直替換頁(yè)面直到空閑列表的大小達(dá)到maxfree。maxfree通過(guò)VMM頁(yè)面替換空閑列表可達(dá)到的最大大小。當(dāng)進(jìn)程終止并釋放它們的工作段頁(yè)面或刪除其頁(yè)面在內(nèi)存中的文件時(shí),結(jié)果是空閑列表的大小可能會(huì)超過(guò)這個(gè)數(shù)。VMM試圖保持空閑列表的大小大于或等于minfree。當(dāng)缺頁(yè)故障或系統(tǒng)需求導(dǎo)致空閑列表大小低于minfree時(shí),頁(yè)面替換算法就開(kāi)始運(yùn)行。由于幾個(gè)原因,空閑列表的大小必須保持在某個(gè)級(jí)別之上
13、(缺省值是minfree)。例如,操作系統(tǒng)的順序預(yù)取算法每次需要幾個(gè)幀用于每個(gè)正在進(jìn)行順序讀取的進(jìn)程。而且VMM必須避免在操作系統(tǒng)自身內(nèi)部產(chǎn)生死鎖,如果沒(méi)有足夠的空間讀取需要釋放頁(yè)面幀的頁(yè)就可能出現(xiàn)這種情況。下列閾值以百分?jǐn)?shù)的形式表示。它們表示由文件頁(yè)面(非計(jì)算段的頁(yè)面)占有的機(jī)器全部實(shí)際內(nèi)存中的一部分。minperm如果由文件頁(yè)面占有的實(shí)際內(nèi)存的百分比低于這個(gè)級(jí)別,則頁(yè)面替換算法既替換文件頁(yè)面也替換計(jì)算頁(yè)面,而不管重新調(diào)頁(yè)率。maxp
14、erm如果由文件頁(yè)面占有的實(shí)際內(nèi)存的百分比高于這個(gè)級(jí)別,則頁(yè)面替換算法僅替換文件頁(yè)面。maxclient如果由文件頁(yè)面占有的實(shí)際內(nèi)存的百分比高于這個(gè)級(jí)別,則頁(yè)面替換算法僅替換客戶機(jī)頁(yè)面。當(dāng)由文件頁(yè)面占有的實(shí)際內(nèi)存的百分比處于minperm和maxperm之間時(shí),VMM通常只替換文件頁(yè)面,但是如果文件頁(yè)面的重新調(diào)頁(yè)率高于計(jì)算頁(yè)面的重新調(diào)頁(yè)率的話,計(jì)算頁(yè)面也被替換。頁(yè)面替換算法的主要意圖是確保計(jì)算頁(yè)面得到合理的待遇。例如,對(duì)于可能會(huì)很快再次
15、使用的程序文本頁(yè),順序讀取長(zhǎng)的數(shù)據(jù)文件到內(nèi)存中應(yīng)該不會(huì)使它們丟失。對(duì)閾值和重新調(diào)頁(yè)率使用頁(yè)面替換算法可確保合理地對(duì)待這兩種類型的頁(yè)面,但仍稍微偏向有利于計(jì)算頁(yè)面的一方。VMM內(nèi)存負(fù)載控制工具進(jìn)程需要實(shí)際內(nèi)存頁(yè)面才可以運(yùn)行。當(dāng)某進(jìn)程引用磁盤上的虛擬內(nèi)存頁(yè)面時(shí),由于該頁(yè)要么已經(jīng)調(diào)出要么從未讀取過(guò),所以必須調(diào)進(jìn)所引用的頁(yè)面,而且一般來(lái)說(shuō),由于必須調(diào)出一個(gè)或多個(gè)頁(yè)面(如果被替換的頁(yè)已經(jīng)做過(guò)修改),從而引起IO流量并延遲了進(jìn)程的進(jìn)度。操作系統(tǒng)通過(guò)
溫馨提示
- 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ù)僅提供信息存儲(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)論