【實驗目的與要求】
1、瞭解虛擬存儲技術的特點
2、掌握請求頁式存儲管理的頁面置換算法
3、瞭解頁面大小和內存實際容量對命中率的影響
【實驗原理】
分頁存儲管理將一個進程的邏輯地址空間分成若干大小相等的片,成爲頁面或頁。
在進程運行過程中,若其所要訪問的頁面不在內存而需要把他們調入內存,但內存已無空閒時,爲了保證該進程能正常運行,系統必須從內存中調出一頁程序或數據,送磁盤的對換區中。但應將哪個頁面調出,須根據一定的算法來確定。通常,把選擇換出頁面的算法稱爲頁面置換算法(Page Replacement Algorithm)。
一個好的頁面置換算法,應具有較低的頁面更換頻率。從理論上講,應將那些以後不再會訪問的頁面換出,或將那些在較長時間內不會再訪問的頁面調出。
1. 最佳置換算法OPT(Optimal)
2. 先進先出頁面置換算法FIFO
3. 最近最久未使用置換算法LRU
【實驗內容】
1、通過隨機數產生一個指令序列,共320條指令。指令的地址按下述原則生成:
l 50%的指令是順序執行的
l 25%的指令是均勻分佈在前地址部分
l 25%的指令是均勻分佈在後地址部分
具體的實施方法是:
l 在【0,319】的指令地址之間隨機選取一起點m;
l 順序執行一條指令,即執行地址爲m+1的指令;
l 在前地址【0,m+1】中隨機選取一條指令並執行,該指令的地址爲m’;
l 順序執行一條指令,其地址爲m’+1;
l 在後地址[m’+2,319]中隨機選取一條指令並執行;
l 重複上述步驟,直到執行320次指令。
2、將指令序列變換成爲頁地址流
設:
l 頁面大小爲1K;
l 用戶內存容量爲4頁到32頁;
l 用戶虛擬容量爲32K。
在用戶虛存中,按每K存放10條指令排列虛擬地址,即320條指令在虛存中的存放方式爲:
第0條~第9條指令爲第0頁(對應虛存地址爲【0,9】);
第10條~第19條指令爲第1頁(對應虛存地址爲【10,19】);
…
第310條~第319條指令爲第31頁(對應虛存地址爲【310,319】)。
按以上方式,用戶指令可組成32頁。
3、計算並輸出下列各種算法在不同內存容量下的命中率。
l 先進先出的算法(FIFO);
l 最近最少使用算法(LRU);
l 最佳淘汰算法(OPT):先淘汰最不常用的頁地址;
其中OPT爲選作內容。
命中率 = 1 – 頁面時效次數/頁地址流長度
在本實驗中,頁地址流長度爲320,頁面失效次數爲每次訪問相應指令時,該指令所對應的頁不在內存的次數。
https://wenku.baidu.com/view/2ff6715d79563c1ec5da71a0.html