作業系統之頁面置換模擬程式設計 NRU

2021-10-01 20:01:16 字數 2298 閱讀 1085

假設分給一作業的記憶體塊數為4,每個頁面中可存放10條指令。

用c語言設計乙個程式,模擬一作業的執行過程。設該作業共有320條指令,即它的位址空間為32頁,目前它的所有頁面都還未調入記憶體。在模擬過程中,如果所訪問的指令已經在記憶體,則顯示其實體地址,並轉下一條指令。如果所訪問的指令尚未裝入記憶體,則發生缺頁,此時需記錄缺頁的次數,並將相應頁調入記憶體。如果4個記憶體塊中均已裝入該作業的虛頁面,則需進行頁面置換。最後顯示其實體地址,並轉下一條指令。在所有320條指令執行完畢後,請計算並顯示作業執行過程中發生的缺頁率。

置換演算法:請考慮 nru演算法。

作業中指令的訪問次序要求按下述原則生成:

具體的實施辦法是:

① 在[0,319]之間隨機選取一條起始執行指令,其序號為m;

② 順序執行下一條指令,即序號為m+1的指令;

③ 通過隨機數,跳轉到前位址部分[0,m-1]中的某條指令處,其序號為m1;

④ 順序執行下一條指令,即序號為m1+1的指令;

⑤ 通過隨機數,跳轉到後位址部分[m1+2,319]中的某條指令處,其序號為m2;

⑥ 順序執行下一條指令,即序號為m2+1的指令;

⑦ 重複「跳轉到前位址部分、順序執行、跳轉到後位址部分、順序執行」的過程,直至執行完全部320條指令。

指令序列轉換成頁訪問序列。

第 0 條-第 9 條指令為第0頁(對應虛存位址為[0,9])

第10條-第19條指令為第1頁(對應虛存位址為[10,19])

………………………………

第310條-第319條指令為第31頁(對應虛存位址為[310,319])

clock演算法是給每一幀關聯乙個附加位,稱為使用位。當某一頁眉次裝入主存時,該幀的使用位設定為1;當該頁隨後再被訪問到時,它的使用位也被置為1。對於頁替換演算法,用於替換的候選幀集合看做乙個迴圈緩衝區,並且有乙個指標與之相關聯。當某一頁被替換時,該指標被設定成指向緩衝區中的下一幀。當需要替換一頁時,作業系統掃瞄緩衝區,以查詢使用位被置為0的一幀。每當遇到乙個使用位為1的幀時,作業系統就將該位重新置為0;如果在這個過程開始時,緩衝區中所有幀的使用位均為0,則選擇遇到的第乙個幀替換;如果所有幀的使用位均為1,則指標在緩衝區中完整地迴圈一周,把所有使用位都置為0,並且停留在最初的位置上,替換該幀中的頁。由於該演算法迴圈地檢查各頁面的情況,故稱為clock演算法,又稱為最近未用(not recently used, nru)演算法.

頁面置換_nru

#include

using

namespace std;

int s[

320]

;int cnt =0;

int lost =0;

typedef

struct node cache_;

//頁面元素

list cache ;

list

::iterator it ;

//初始化

void

init()

//尋找當前指令是否在記憶體塊中

bool find (

int x)

}return judge;

}//當記憶體空間已滿的時候,進行頁面置換

void

delete_cache()

else

}//如果找到了符合要求的頁面,則將其從記憶體塊中刪除

if( judge ==

true

) cc ++;}

return;}

//迴圈尋找符合要求的頁面

while(1

)else}if

( judge ==

true

)break;}

//如果找到了符合要求的頁面,則將其從記憶體塊中刪除

if( judge ==

true

) cc ++;}

return;}

}int

process

(int x)

else

else

cout <<

<<}return1;

}int

main()

int m1=

rand()

%m;//通過隨機數,跳轉到前位址部分[0,m-1]中的某條指令處,其序號為m1

process

(m1)

;//執行指令,即序號為m1的指令

process

(m1+1)

;//順序執行下一條指令,即序號為m1+1的指令

cout<"缺頁率為"

<320.0

}

作業系統頁面置換模擬系統

include include include include include include include include include include include include include include include using namespace std int addres...

(作業系統)模擬作業系統的頁面置換

一 需求分析 設計程式模擬先進先出 fifo 置換演算法,最佳 opt 置換演算法和最近最少用 lru 置換演算法的工作過程。假設記憶體中分配給每個程序的最小物理塊數為m,在程序執行過程中要訪問的頁面個數為n,頁面訪問序列為p1,pn,分別利用不同的頁面置換演算法排程程序的頁面訪問序列,給出頁面訪問...

作業系統頁面置換演算法模擬

一 實驗目的通過模擬實現請求頁式儲存管理的幾種基本頁面置換演算法,了解虛擬儲存技術的特點,掌握虛擬儲存請求頁式儲存管理中幾種基本頁面置換演算法的基本思想和實現過程,並比較它們的效率。二 實驗內容 設計乙個虛擬儲存區和記憶體工作區,並使用下述演算法計算訪問命中率。1 最佳淘汰演算法 opt 2 先進先...