《實(shí)驗(yàn)5存儲(chǔ)管理》PPT課件_第1頁
《實(shí)驗(yàn)5存儲(chǔ)管理》PPT課件_第2頁
《實(shí)驗(yàn)5存儲(chǔ)管理》PPT課件_第3頁
《實(shí)驗(yàn)5存儲(chǔ)管理》PPT課件_第4頁
《實(shí)驗(yàn)5存儲(chǔ)管理》PPT課件_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

操作系統(tǒng)原理實(shí)驗(yàn),周蘇ZsQQ:81505050,操作系統(tǒng)的各個(gè)主題粗線表示從設(shè)計(jì)和實(shí)現(xiàn)的角度考慮關(guān)系非常緊密,實(shí)驗(yàn)5存儲(chǔ)管理,通過實(shí)驗(yàn)程序的分析與編制,了解操作系統(tǒng)內(nèi)存的使用和管理;了解操作系統(tǒng)的內(nèi)存結(jié)構(gòu)和虛擬內(nèi)存的管理等實(shí)驗(yàn)5.1提高Windows2000的內(nèi)存性能實(shí)驗(yàn)5.2Windows2000內(nèi)存結(jié)構(gòu)實(shí)驗(yàn)5.3Windows2000虛擬內(nèi)存實(shí)驗(yàn)5.4Linux用戶程序的內(nèi)存管理,實(shí)驗(yàn)估計(jì)時(shí)間:120分鐘,難度系數(shù):4,5.1提高Windows2000的內(nèi)存性能,耗盡內(nèi)存是Windows2000系統(tǒng)中最常見的問題之一。當(dāng)系統(tǒng)耗盡內(nèi)存時(shí),所有進(jìn)程對(duì)內(nèi)存的總需求超出了系統(tǒng)的物理內(nèi)存總量。Windows2000必須借助虛擬內(nèi)存來維持系統(tǒng)和進(jìn)程的運(yùn)行虛擬內(nèi)存機(jī)制是Windows2000操作系統(tǒng)的重要組成部分,但它的速度比物理內(nèi)存慢得多,因此,應(yīng)該盡量避免耗盡物理內(nèi)存資源,以免導(dǎo)致性能下降,背景知識(shí),解決內(nèi)存不足問題的一個(gè)有效的方法就是添加更多的內(nèi)存。但是,一旦提供了更多的內(nèi)存,Windows2000很可以會(huì)立即“吞食”而事實(shí)上,添加更多的內(nèi)存并非總是可行的,也可能只是推遲了實(shí)際問題的發(fā)生因此,應(yīng)該相信,優(yōu)化所擁有的內(nèi)存是非常關(guān)鍵的,背景知識(shí),分頁過程當(dāng)Windows2000求助于硬盤以獲得虛擬內(nèi)存時(shí),這個(gè)過程被稱為分頁(paging)分頁就是將信息從主內(nèi)存移動(dòng)到磁盤進(jìn)行臨時(shí)存儲(chǔ)的過程。應(yīng)用程序?qū)⑽锢韮?nèi)存和虛擬內(nèi)存視為一個(gè)獨(dú)立的實(shí)體,甚至不知道Windows2000使用了兩種內(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)存可供使用使用分頁方案是有代價(jià)的。進(jìn)程所需要的代碼或數(shù)據(jù)在硬盤和物理內(nèi)存間交換,而硬盤與物理內(nèi)存在性能上的差異極大。例如,硬盤的訪問時(shí)間通常大約為4-10毫秒,而物理內(nèi)存的訪問時(shí)間為60us,甚至更快,背景知識(shí),內(nèi)存共享應(yīng)用程序經(jīng)常需要彼此通信和共享信息。為了提供這種能力,Windows2000必須允許訪問某些內(nèi)存空間而不危及它和其他應(yīng)用程序的安全性和完整性從性能的角度來看,共享內(nèi)存的能力大大減少了應(yīng)用程序使用的內(nèi)存數(shù)量。運(yùn)行一個(gè)應(yīng)用程序的多個(gè)副本時(shí),每一個(gè)實(shí)例都可以使用相同的代碼和數(shù)據(jù),這意味著不必維護(hù)所加載應(yīng)用程序代碼的單獨(dú)副本并使用相同的內(nèi)存資源。無論正在運(yùn)行多少個(gè)應(yīng)用程序?qū)嵗?,充分支持?yīng)用程序代碼所需求的內(nèi)存數(shù)量都相對(duì)保持不變,背景知識(shí),未分頁合并內(nèi)存與分頁合并內(nèi)存Windows2000決定了系統(tǒng)內(nèi)存組件哪些可以以及哪些不可以交換到磁盤上。顯然,不應(yīng)該將某些代碼(例如內(nèi)核)交換出主內(nèi)存。因此,Windows2000將系統(tǒng)使用的內(nèi)存進(jìn)一步劃分為未分頁合并內(nèi)存和分頁合并內(nèi)存分頁合并內(nèi)存:是存儲(chǔ)遲早需要的可分頁代碼或數(shù)據(jù)的內(nèi)存部分。雖然可以將分頁合并內(nèi)存中的任何系統(tǒng)進(jìn)程交換到磁盤上,但是它臨時(shí)存儲(chǔ)在主內(nèi)存的這一部分,以防系統(tǒng)立刻需要它。在將系統(tǒng)進(jìn)程交換到磁盤上之前,Windows2000會(huì)交換其他進(jìn)程,背景知識(shí),未分頁合并內(nèi)存:包含必須駐留在內(nèi)存中的占用代碼或數(shù)據(jù)。這種結(jié)構(gòu)類似于早期的MS-DOS程序使用的結(jié)構(gòu),在MS-DOS中,相對(duì)較小的終止并駐留程序(TSR)在啟動(dòng)時(shí)加載到內(nèi)存中。這些程序在系統(tǒng)重新啟動(dòng)或關(guān)閉之前一直駐留在內(nèi)存的特定部分中。例如,防病毒程序?qū)⒓虞d為TSR程序,以預(yù)防可能的病毒襲擊未分頁合并內(nèi)存中包含的進(jìn)程保留在主內(nèi)存中,并且不能交換到磁盤上。物理內(nèi)存的這個(gè)部分用于內(nèi)核模式操作(例如,驅(qū)動(dòng)程序)和必須保留在主內(nèi)存中才能有效工作的其他進(jìn)程。沒有主內(nèi)存的這個(gè)部分,內(nèi)核組件就將是可分頁的,系統(tǒng)本身就有變得不穩(wěn)定的危險(xiǎn),背景知識(shí),分配到未分頁內(nèi)存池的主內(nèi)存數(shù)量取決于服務(wù)器擁有的物理內(nèi)存數(shù)量以及進(jìn)程對(duì)系統(tǒng)上的內(nèi)存地空間的需求Windows2000將未分頁合并內(nèi)存限制為256MB(在WindowsNT4中的限制為128MB)。根據(jù)系統(tǒng)中的物理內(nèi)存數(shù)量,復(fù)雜的算法在啟動(dòng)時(shí)動(dòng)態(tài)確定Windows2000系統(tǒng)上的未分頁合并內(nèi)存的最大數(shù)量Windows2000內(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)整未分頁合并內(nèi)存的大小,以反映這一更改,背景知識(shí),提高分頁性能只有一個(gè)物理硬盤驅(qū)動(dòng)器的系統(tǒng)限制了優(yōu)化分頁性能的能力。驅(qū)動(dòng)器必須處理系統(tǒng)和應(yīng)用程序的請(qǐng)求以及對(duì)分頁文件的訪問。雖然物理驅(qū)動(dòng)器可能有多個(gè)分區(qū),但是將分頁文件分布到多個(gè)分區(qū)的分頁文件并不能提高硬盤驅(qū)動(dòng)器的能力。只有當(dāng)一個(gè)分區(qū)沒有足夠的空間來包含整個(gè)分頁文件時(shí),才將分頁文件放在同一個(gè)硬盤的多個(gè)分區(qū)上,背景知識(shí),擁有多個(gè)物理驅(qū)動(dòng)器的服務(wù)器可以使用多個(gè)分頁文件來提高分頁性能。關(guān)鍵是將分頁請(qǐng)求的負(fù)載分布到多個(gè)物理硬盤上。實(shí)際上,使用獨(dú)立物理驅(qū)動(dòng)器上的分頁文件,系統(tǒng)可以同時(shí)處理多個(gè)分頁請(qǐng)求。各個(gè)物理驅(qū)動(dòng)器可以同時(shí)訪問它自己的分頁文件并寫入信息,這將增加可以傳輸?shù)男畔⒘俊6鄠€(gè)分頁文件的最佳配置是將各個(gè)分頁文件放在擁有自己的控制器的獨(dú)立驅(qū)動(dòng)器上。不過,由于額外的費(fèi)用并且系統(tǒng)上的可用中斷很有限,因此對(duì)于大多數(shù)基于服務(wù)器的配置來說,這可能是不切實(shí)際的解決方案,背景知識(shí),分頁文件最重要的配置參數(shù)是大小。無論系統(tǒng)中有多少個(gè)分頁文件,如果它們的大小不合適,那么系統(tǒng)就可能遇到性能問題如果初始值太小,那么系統(tǒng)可能必須擴(kuò)大分頁文件,以補(bǔ)償額外的分頁活動(dòng)。當(dāng)系統(tǒng)臨時(shí)增加分頁文件時(shí),它必須在處理分頁請(qǐng)求的同時(shí)創(chuàng)建新的空間。這時(shí),系統(tǒng)將出現(xiàn)大量的頁面錯(cuò)誤,甚至可能出現(xiàn)系統(tǒng)失效。當(dāng)系統(tǒng)必須在進(jìn)程的工作區(qū)外部(在物理內(nèi)存或分頁文件中的其他位置)查找信息時(shí),就會(huì)出現(xiàn)頁面錯(cuò)誤。當(dāng)系統(tǒng)缺乏存儲(chǔ)資源(物理內(nèi)存及虛擬內(nèi)存)來滿足使用需求,從而遇到過多的分頁時(shí),就會(huì)出現(xiàn)系統(tǒng)失效。系統(tǒng)將花更多的時(shí)間來分頁而不是執(zhí)行應(yīng)用程序。當(dāng)系統(tǒng)失效時(shí),Memory:Pages/see計(jì)數(shù)器將持續(xù)高于每秒100頁。系統(tǒng)失效嚴(yán)重降低了系統(tǒng)的性能。此外,動(dòng)態(tài)擴(kuò)展分頁文件將導(dǎo)致碎片化。分頁文件將散布在整個(gè)磁盤上而不是在啟動(dòng)時(shí)的連續(xù)空間中創(chuàng)建,從而增加了系統(tǒng)的開銷,并導(dǎo)致系統(tǒng)性能降低。因此,應(yīng)該盡量避免系統(tǒng)增加分頁文件的大小,背景知識(shí),通過對(duì)Windows2000“任務(wù)管理器”、“計(jì)算機(jī)管理”、“我的電腦”屬性、“系統(tǒng)信息”、“系統(tǒng)監(jiān)視器”等程序的應(yīng)用,學(xué)習(xí)提高Windows內(nèi)存的性能,加深理解Windows操作系統(tǒng)的內(nèi)存管理功能,理解操作系統(tǒng)存儲(chǔ)管理、虛擬存儲(chǔ)管理的知識(shí),實(shí)驗(yàn)?zāi)康?在開始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書的相關(guān)內(nèi)容需要準(zhǔn)備一臺(tái)運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī),工具/準(zhǔn)備工作,查看包含多個(gè)實(shí)例的應(yīng)用程序的內(nèi)存需求未分頁合并內(nèi)存提高分頁性能計(jì)算分頁文件的大小使用任務(wù)管理器簡單檢查分頁文件,實(shí)驗(yàn)內(nèi)容與步驟,在NTFS驅(qū)動(dòng)器上,總是至少保留25的空閑驅(qū)動(dòng)器空間,以確??梢栽谶B續(xù)的空間中創(chuàng)建分頁文件Windows2000使用內(nèi)存數(shù)量的1.5倍作為分頁文件的最小容量,這個(gè)最小容量的兩倍作為最大容量。它減少了系統(tǒng)因?yàn)殄e(cuò)誤配置的分頁文件而崩潰的可能性。系統(tǒng)在崩潰之后能夠?qū)?nèi)存轉(zhuǎn)儲(chǔ)寫入磁盤,所以系統(tǒng)分區(qū)必須有一個(gè)至少等于物理內(nèi)存數(shù)量加上1的分頁文件,實(shí)驗(yàn)提示,實(shí)驗(yàn)估計(jì)時(shí)間:120分鐘,難度系數(shù):4,5.2Windows2000內(nèi)存結(jié)構(gòu),Windows2000是32位的操作系統(tǒng),它使計(jì)算機(jī)CPU可以用32位地址對(duì)32位內(nèi)存塊進(jìn)行操作。內(nèi)存中的每一個(gè)字節(jié)都可以用一個(gè)32位的指針來尋址。這樣,最大的存儲(chǔ)空間就是232字節(jié)或4000兆字節(jié)(4GB)。這樣,在Windows下運(yùn)行的每一個(gè)應(yīng)用程序都認(rèn)為能獨(dú)占可能的4GB大小的空間而另一方面,實(shí)際上沒有幾臺(tái)機(jī)器的RAM能達(dá)到4GB,更不必說讓每個(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)器根目錄上的換頁文件。物理內(nèi)存完全由系統(tǒng)管理,背景知識(shí),通過實(shí)驗(yàn)了解Windows2000內(nèi)存的使用,學(xué)習(xí)如何在應(yīng)用程序中管理內(nèi)存,體會(huì)Windows應(yīng)用程序內(nèi)存的簡單性和自我防護(hù)能力了解Windows2000的內(nèi)存結(jié)構(gòu)和虛擬內(nèi)存的管理,進(jìn)而了解進(jìn)程堆和Windows為使用內(nèi)存而提供的一些擴(kuò)展功能,實(shí)驗(yàn)?zāi)康?在開始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書的相關(guān)內(nèi)容您需要做以下準(zhǔn)備:一臺(tái)運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī)計(jì)算機(jī)中需安裝VisualC+6.0專業(yè)版或企業(yè)版,工具/準(zhǔn)備工作,Windows提供了一個(gè)API即GetSystemInfo(),以便用戶能檢查系統(tǒng)中虛擬內(nèi)存的一些特性。清單5-1顯示了如何調(diào)用該函數(shù)以及顯示系統(tǒng)中當(dāng)前內(nèi)存的參數(shù)。,實(shí)驗(yàn)內(nèi)容與步驟,可供應(yīng)用程序使用的內(nèi)存空間實(shí)際上已經(jīng)減去了開頭與結(jié)尾兩個(gè)64KB的保護(hù)區(qū)。虛擬內(nèi)存空間中的64KB保護(hù)區(qū)是防止編程錯(cuò)誤的一種Windows方式。任何對(duì)內(nèi)存中這一區(qū)域的訪問(讀、寫、執(zhí)行)都將引發(fā)一個(gè)錯(cuò)誤陷井,從而導(dǎo)致錯(cuò)誤并終止程序的執(zhí)行。也就是說,假如用戶有一個(gè)NULL指針(地址為0),但仍試圖在此之前很近的地址處使用另一個(gè)指針,這將因?yàn)樵噲D從更低的保留區(qū)域讀寫數(shù)據(jù),從而產(chǎn)生意外錯(cuò)誤并終止程序的執(zhí)行,實(shí)驗(yàn)提示,實(shí)驗(yàn)估計(jì)時(shí)間:120分鐘,難度系數(shù):4,5.3Windows2000虛擬內(nèi)存,在Windows2000環(huán)境下,4GB的虛擬地址空間被劃分成兩個(gè)部分:低端2GB提供給進(jìn)程使用,高端2GB提供給系統(tǒng)使用。這意味著用戶的應(yīng)用程序代碼,包括DLL以及進(jìn)程使用的各種數(shù)據(jù)等,都裝在用戶進(jìn)程地址空間內(nèi)(低端2GB)用戶過程的虛擬地址空間也被分成三部分:虛擬內(nèi)存的已調(diào)配區(qū)(committed):具有備用的物理內(nèi)存,根據(jù)該區(qū)域設(shè)定的訪問權(quán)限,用戶可以進(jìn)行寫、讀或在其中執(zhí)行程序等操作虛擬內(nèi)存的保留區(qū)(reserved):沒有備用的物理內(nèi)存,但有一定的訪問權(quán)限虛擬內(nèi)存的自由區(qū)(free):不限定其用途,有相應(yīng)的PAGE_NOACCESS權(quán)限,背景知識(shí),與虛擬內(nèi)存區(qū)相關(guā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)Windows還提供了一整套能使用戶精確控制應(yīng)用程序的虛擬地址空間的虛擬內(nèi)存API提供虛擬內(nèi)存分配功能的是VirtualAlloc()API。該API支持用戶向系統(tǒng)要求新的虛擬內(nèi)存或改變已分配內(nèi)存的當(dāng)前狀態(tài)。用戶若想通過VirtualAlloc()函數(shù)使用虛擬內(nèi)存,可以采用兩種方式通知系統(tǒng):簡單地將內(nèi)存內(nèi)容保存在地址空間內(nèi)請(qǐng)求系統(tǒng)返回帶有物理存儲(chǔ)區(qū)(RAM的空間或換頁文件)的部分地址空間用戶可以用flAllocationType參數(shù)(commit和reserve)來定義這些方式,用戶可以通知Windows按只讀、讀寫、不可讀寫、執(zhí)行或特殊方式來處理新的虛擬內(nèi)存與VirtualAlloc()函數(shù)對(duì)應(yīng)的是VirtualFree()函數(shù),其作用是釋放虛擬內(nèi)存中的已調(diào)配頁或保留頁。用戶可利用dwFreeType參數(shù)將已調(diào)配頁修改成保留頁屬性VirtualProtect()是VirtualAlloc()的一個(gè)輔助函數(shù),利用它可以改變虛擬內(nèi)存區(qū)的保護(hù)規(guī)范,背景知識(shí),通過實(shí)驗(yàn)了解Windows2000內(nèi)存的使用,學(xué)習(xí)如何在應(yīng)用程序中管理內(nèi)存,體會(huì)Windows應(yīng)用程序內(nèi)存的簡單性和自我防護(hù)能力學(xué)習(xí)檢查虛擬內(nèi)存空間或?qū)ζ溥M(jìn)行操作了解Windows2000的內(nèi)存結(jié)構(gòu)和虛擬內(nèi)存的管理,進(jìn)而了解進(jìn)程堆和Windows為使用內(nèi)存而提供的一些擴(kuò)展功能,實(shí)驗(yàn)?zāi)康?在開始本實(shí)驗(yàn)之前,請(qǐng)回顧教科書的相關(guān)內(nèi)容您需要做以下準(zhǔn)備一臺(tái)運(yùn)行Windows2000Professional操作系統(tǒng)的計(jì)算機(jī)計(jì)算機(jī)中需安裝VisualC+6.0專業(yè)版或企業(yè)版,工具/準(zhǔn)備工作,虛擬內(nèi)存的檢測(cè)示例程序使用VirtualQueryEX()函數(shù)來檢查虛擬內(nèi)存空間虛擬內(nèi)存操作示例程序顯示了如何分配一個(gè)大容量空間,將物理存儲(chǔ)委托給其中的很小一部分(千分之一)并加以使用,實(shí)驗(yàn)內(nèi)容與步驟,實(shí)驗(yàn)估計(jì)時(shí)間:90分鐘,難度系數(shù):5,5.4Linux用戶程序的內(nèi)存管理,現(xiàn)代操作系統(tǒng)允許多個(gè)程序同時(shí)運(yùn)行,因此,內(nèi)存中需要同時(shí)存放這些程序。操作系統(tǒng)采用的存儲(chǔ)管理方案主要有分區(qū)式存儲(chǔ)管理、分頁式存儲(chǔ)管理、分段式存儲(chǔ)管理和段頁式存儲(chǔ)管理等本實(shí)驗(yàn)以一個(gè)Linux實(shí)例程序說明應(yīng)用程序如何通過系統(tǒng)調(diào)用來管理自己用的空閑內(nèi)存,目的在于加深讀者對(duì)操作系統(tǒng)存儲(chǔ)管理內(nèi)容的理解本實(shí)驗(yàn)實(shí)例由my-malloc.h、my-malloc.c和test.c三個(gè)文件組成。為閱讀程序方便,對(duì)其中的主要函數(shù)作了說明,讀者可結(jié)合程序注釋理解該程序,背

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論