請求頁式存儲管理中常用頁面置換算法模擬_第1頁
請求頁式存儲管理中常用頁面置換算法模擬_第2頁
請求頁式存儲管理中常用頁面置換算法模擬_第3頁
請求頁式存儲管理中常用頁面置換算法模擬_第4頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第3頁共5頁信息工程學(xué)院實驗報告成 績:指導(dǎo)教師(簽名)課程名稱:操作系統(tǒng)實驗項目名稱:請求頁式存儲管理中常用頁面置換算法模擬實驗時間:班級姓名:學(xué)號:、實驗?zāi)康模? .了解內(nèi)存分頁管理策略2 .掌握調(diào)頁策略3 .掌握一般常用的調(diào)度算法4 .學(xué)會各種存儲分配算法的實現(xiàn)方法。5 .了解頁面大小和內(nèi)存實際容量對命中率的影響。、實驗環(huán)境:PC機(jī)、windows2000 操作系統(tǒng)、VC+6.0 三、實驗要求:本實驗要求4學(xué)時完成。1 .采用頁式分配存儲方案,通過分別計算不同算法的命中率來比較算法的優(yōu)劣,同時也考慮頁面大小及內(nèi)存實際容量對命中率的影響;2 . 實現(xiàn) OPT 算法(最優(yōu)置換算法)、LRU

2、算法(Least Recently) 、FIFO 算法(First IN First Out)的模擬;3 .會使用某種編程語言。實驗前應(yīng)復(fù)習(xí)實驗中所涉及的理論知識和算法,針對實驗要求完成基本代碼編寫、實驗中認(rèn)真調(diào)試所編代碼并進(jìn)行必要的測試、記錄并分析實驗結(jié)果。實驗后認(rèn)真書寫符合規(guī)范格式的實驗報告,按時上交。四、實驗內(nèi)容和步驟:1 .編寫程序,實現(xiàn)請求頁式存儲管理中常用頁面置換算法LRU算法的模擬。要求屏幕顯示 LRU算法的性能分析表、缺頁中斷次數(shù)以及缺頁率。2 .在上機(jī)環(huán)境中輸入程序,調(diào)試,編譯。3 .設(shè)計輸入數(shù)據(jù),寫出程序的執(zhí)行結(jié)果。4 .根據(jù)具體實驗要求,填寫好實驗報告。五、實驗結(jié)果及分析

3、:實驗結(jié)果截圖如下:T:AIlDemoVi&ual C+400*曲iyan三Debuqshiyan3.exe內(nèi)存狀態(tài)I:*»心攏LRU置按算;士實驗1107010) HKMKKK;23456741320352KE訪mw個問最頁頁 人人入 一則必劇 主目主戶主月1:1;1;1;5:5:5:1:1:1:1;:5;12!2!2!2161&1161313131I3! 3 ! 2 ! 3 ! 3 I ? !I?!7I2!2II2!: 4 : 4 ! 4 : 4 !4!4:4!0!0:缺頁次數(shù):12版頁率二*Px牛苫琴 anu key to continue利用一個特殊的棧來保存

4、當(dāng)前使用的各個頁面的頁面號。當(dāng)進(jìn)程訪問某頁面時,便將該頁面的頁面號從棧 中移出,將它壓入棧頂。因此,棧頂始終是最新被訪問頁面的編號,棧底是最近最久未被使用的頁面號。當(dāng)訪問第5個數(shù)據(jù)“ 5”時發(fā)生了缺頁,此時 1是最近最久未被訪問的頁,應(yīng)將它置換出去。同理可得,調(diào)入隊列為:1 2 3 4 5 6 7 1 3 2 0 5,缺頁次數(shù)為12次,缺頁率為 80%六、實驗心得:本次實驗實現(xiàn)了對請求頁式存儲管理中常用頁面置換算法LRU算法的模擬。通過實驗,我對內(nèi)存分頁管理策略有了更多的了解。最近最久未使用(LRU置換算法的替換規(guī)則:是根據(jù)頁面調(diào)入內(nèi)存后的使用情況來進(jìn)行決策的。該算 法賦予每個頁面一個訪問字段

5、,用來記錄一個頁面自上次被訪問以來所經(jīng)歷的時間,當(dāng)需淘汰一個頁面的 時候選擇現(xiàn)有頁面中其時間值最大的進(jìn)行淘汰。最佳置換算法的替換規(guī)則:其所選擇的被淘汰頁面,將是以后永不使用的或許是在最長(未來)時間內(nèi)不再被訪問的頁面。先進(jìn)先出(FIFO)頁面置換算法的替換規(guī)則:該算法總是淘汰最先進(jìn)入內(nèi)存的頁面,即選擇在內(nèi)存中駐 留時間最久的頁面予以淘汰。該算法實現(xiàn)簡單只需把一個進(jìn)程已調(diào)入內(nèi)存的頁面,按先后次序鏈接成一個 隊列,并設(shè)置一個指針,稱為替換指針,使它總是指向最老的頁面。三種替換算法的命中率由高到底排列OPT>LRU>FIFO本次的程序是在網(wǎng)上查找的相關(guān)代碼然后自己進(jìn)行修改,先自己仔細(xì)地研

6、讀了這段代碼,在這過程中 我對C+弋碼編寫有了更深的了解??傊?,本次實驗使我明白要學(xué)會把課堂上的理論應(yīng)用到實際操作中。 我需要在今后熟練掌握課堂上的理論基礎(chǔ),只有堅實的基礎(chǔ),才能在實際操作中更得心應(yīng)手。附錄:#include "iostream.h"#include <iomanip.h>const int DataMax=100;const int BlockNum = 10;用于存儲要顯示的數(shù)組int DataShowBlockNumDataMax; /用于存儲數(shù)組中的數(shù)據(jù)是否需要顯示bool DataShowEnableBlockNumDataMax; /

7、int DataDataMax; / 保存數(shù)據(jù)int BlockBlockNum; /物理塊int countBlockNum; /計數(shù)器int N ; / 頁面?zhèn)€數(shù)int M;/ 最小物理塊數(shù)int ChangeTimes;void DataInput(); / 輸入數(shù)據(jù)的函數(shù)void DataOutput();void LRU(); / LRU 函數(shù)/*int main(int argc, char* argv)DataInput();/ DataInput();LRU();return 0;/*/void DataInput()cout<<" 請輸入最小物理塊數(shù):&

8、quot;cin>>M;while(M > BlockNum) / 大于數(shù)據(jù)個數(shù)cout<<" 物理塊數(shù)超過預(yù)定值,請重新輸入: cin>>M;cout<<" 請輸入頁面的個數(shù):"cin>>N;while(N > DataMax) / 大于數(shù)據(jù)個數(shù)cout<<" 頁面?zhèn)€數(shù)超過預(yù)定值,請重新輸入: cin>>N;cout<<" 請輸入頁面訪問序列:"<<endl;for(int i=0;i<N;i+) cin&g

9、t;>Datai;void DataOutput()int i,j;for(i=0;i<N;i+) / 對所有數(shù)據(jù)操作 cout<<Datai<<” ;)cout<<"n"<<endl;for(j=0;j<M;j+) ( cout<<""for(i=0;i<N;i+) /對所有數(shù)據(jù)操作(if( DataShowEnableji) cout<<DataShowji<<" | "else cout<<" | &

10、quot;) cout<<endl; ) cout<<"n 缺頁次數(shù):"<<ChangeTimes<<endl;cout<<"缺頁率:"<<ChangeTimes*100/N<<"%"<<endl; )void LRU()( int i,j; bool find; int point; int temp; / 臨時變量 ChangeTimes = 0;for(j=0;j<M;j+)for(i=0;i<N;i+)DataShowE

11、nableji = false; /初始化為false ,表示沒有要顯示的數(shù)據(jù)for(i=0;i<M;i+) (counti = 0 ;)for(i=0;i<N;i+) /對有所數(shù)據(jù)操作( / 增加 count for(j=0;j<M;j+) countj+;find = false; /表示塊中有沒有該數(shù)據(jù)for(j=0;j<M;j+) (if( Blockj = Datai) ( countj = 0;find = true;if( find ) continue; /塊中有該數(shù)據(jù),判斷下一個數(shù)據(jù)/ 塊中沒有該數(shù)據(jù)ChangeTimes+; / 缺頁次數(shù)+if( (i+1) > M )/因為i是從0開始記,而BlockNum指的是個數(shù),從1開始,所以i+1/ 獲得要替換的塊指針temp = 0;for(j=0;j<M;j+)if( temp < countj )temp = countj;point = j; /獲得離的最遠(yuǎn)的指針else point = i;/ 替換Blockpoint = Datai;countpoint = 0;/ 保存要顯示的數(shù)據(jù)for(j=0;j<M;j+)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論