【實驗目的與要求】
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,頁面失效次數為每次通路相應指令時,該指令所對應的頁不在記憶體的次數。