目的:
熟悉頁面置換演算法及其實現,引入計算機系統效能評價方法的概念。
內容:
編制頁面置換演算法的模擬程式。
要求:
用隨機數方法產生頁面走向,頁面走向長度為l。
根據頁面走向,分別採用fifo和lru演算法進行頁面置換,統計缺頁率。
假定可用記憶體塊和頁表長度 (作業的頁面數)分別為m和k,初始時,作業頁面都不在記憶體。
隨機數產生程式:
function random: real:
begin seed: =125.0*(seed+1.0)
seed: =seed-8192.0*trunc (seed/8192)
random: = (seed+0.5)/8192
end;
上述隨機數發生函式產生的隨機數為0.0~1.0,稍另變化就可得到0~n-1之間的隨機數。
程式開始時,應對變數seed (實型)賦初值。
#include #include #include using namespace std;
#define max_l 1000
#define max_m 1000
int m,k;//可用記憶體塊和作業的頁面數分別為m和k
int reqpage[max_l],l;//頁面走向長度為l
double random()
void calc_fifo()
} printf("缺頁率%g\n", 1.0*missnum/l);
}void calc_lru()
missnum++;
int *minlastvisitit = min_element(lastvisittime, lastvisittime + m);
int pageoutid = minlastvisitit - lastvisittime;
printf("第%d次缺頁,%d換入,%d換出\n",missnum,reqpage[i],pagetable[pageoutid]);
pagetable[pageoutid] = reqpage[i];
lastvisittime[pageoutid] = i;
} }printf("\n缺頁率%g\n", 1.0*missnum/l);
}int main()
puts("");
//!!!因為請求序列是隨機生成的,不符合區域性性原理,很多情況下lru表現不比fifo好
calc_fifo();
calc_lru();
return 0;
}
作業系統頁面置換演算法模擬
一 實驗目的通過模擬實現請求頁式儲存管理的幾種基本頁面置換演算法,了解虛擬儲存技術的特點,掌握虛擬儲存請求頁式儲存管理中幾種基本頁面置換演算法的基本思想和實現過程,並比較它們的效率。二 實驗內容 設計乙個虛擬儲存區和記憶體工作區,並使用下述演算法計算訪問命中率。1 最佳淘汰演算法 opt 2 先進先...
作業系統實驗四 頁面置換演算法 實驗報告
設計和實現最佳置換演算法 先進先出置換演算法 最近最久未使用置換演算法 頁面緩衝置換演算法 通過頁面訪問序列隨機發生器實現對上述演算法的測試及效能比較。1 請求分頁虛擬記憶體管理 請求分頁虛擬記憶體管理是建立在基本分頁基礎上的,為了能支援虛擬儲存器功能,而增加了請求調頁功能和置換功能。2 工作集 多...
作業系統 頁面置換演算法
1 最佳頁面置換演算法 opt 其所選擇的被淘汰頁面,將是以後永不再用的,或許是在最長 未來 時間內不再被訪問的頁面。最佳置換演算法是一種理想化的演算法,具有最好的效能,但難於實現。先進先出置換演算法最直觀,但可能性能最差,故應用極少。優點 保證獲得最低的缺頁率 缺點 無法預知乙個程序在記憶體的若干...