天天看點

作業系統實驗筆記(七)-linux存儲管理

【實驗目的與要求】

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

繼續閱讀