頁面置換算法模擬 實驗報告材料

上傳人:仙*** 文檔編號:83365121 上傳時間:2022-05-01 格式:DOC 頁數:14 大?。?07.50KB
收藏 版權申訴 舉報 下載
頁面置換算法模擬 實驗報告材料_第1頁
第1頁 / 共14頁
頁面置換算法模擬 實驗報告材料_第2頁
第2頁 / 共14頁
頁面置換算法模擬 實驗報告材料_第3頁
第3頁 / 共14頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《頁面置換算法模擬 實驗報告材料》由會員分享,可在線閱讀,更多相關《頁面置換算法模擬 實驗報告材料(14頁珍藏版)》請在裝配圖網上搜索。

1、word 中北大學軟件學院 實 驗 報 告 專 業(yè) 軟件工程 課程名稱 計算機操作系統(tǒng) 學 號 姓 名 輔導教師 靜 成績 實驗日期 實驗時間 1實驗名稱 :實驗四 頁面置換算法模擬 2、實驗目的 〔1〕了解存分頁管理策略 〔2〕掌握調頁策略 〔3〕掌握一般常用的調度算法 〔4〕學會各種存儲分配算法的實現方法。 〔5〕了解頁面大小和存實際容量對命中率的影響。 3、實驗

2、要求 編程實現頁面置換算法,最少實現兩種算法,比擬算法的優(yōu)劣,并將調試結果顯示在計算機屏幕上,并檢測機算和筆算的一致性。 〔1〕采用頁式分配存儲方案,通過分別計算不同算法的命中率來比擬算法的優(yōu)劣,同時也考慮頁面大小與存實際容量對命中率的影響; 〔2〕實現OPT 算法 (最優(yōu)置換算法)?、LRU 算法 (Least Recently)?、 FIFO 算法 (First IN First Out)的模擬; 〔3〕使用某種編程語言模擬頁面置換算法。 4、實驗算法描述 〔1〕FIFO〔先進先出〕 開始 頁面走向存入數組p[]中,內存塊用page[]表示初始化為0

3、 當前p[]中第i個元素是否已在內存中 i++ Y Page[]是否有空 N N 把p[i]的內容直接裝入最上面一個空內存塊,i++ 把page[]中最先裝入的頁面置換出去.i++ Y 輸出當前內存塊狀態(tài) 完畢 圖4-1FIFO算法流程圖 開始 〔2〕 LRU〔最近最久未使用〕 頁面走向存入數組p[]中,內存塊用page[]表示初始化為0 當前p[]中第i個元素是否已在內存 i++ Y N Page[]是否有空 Y

4、 N 把p[i]的內容直接裝入最上面一個空內存塊,i++ 把page[]中最近最久未使用的頁面置換出去.i++ 輸出當前內存塊狀態(tài) 完畢 圖4-2 LRU算法流程圖 〔3〕OPT〔最優(yōu)置換算法〕 開始 頁面走向存入數組p[]中,內存塊用page[]表示初始化為0 當前p[]中第i個元素是否已在內存 i++ Y Page[]是否有空 N Y N 把p

5、[i]的內容直接裝入最上面一個空內存塊,i++ 把page[]中以后一段時間都不使用或是使用時間離現在最遠的換出.i++ 輸出當前內存塊狀態(tài) 完畢 圖4-3 OPT 流程圖 6、實驗代碼 #include using namespace std; #define Bsize 3 #define Psize 20 struct pageInfor { int content; //頁面號 int timer; //

6、被訪問標記 }; class PRA{ public: PRA(void); int findSpace(void); //查找是否有空閑存 int findExist(int curpage); //查找存中是否有該頁面 int findReplace(void); //查找應予置換的頁面 void display(void); //顯示 void FIFO(void);//FIFO算法 void LRU(void);//LRU算法 void Optimal(void);//OPTIMAL算法 v

7、oid BlockClear(void);//BLOCK恢復 pageInfor * block;//物理塊 pageInfor * page;//頁面號串 private: }; PRA::PRA(void){ int QString[20]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}; block = new pageInfor[Bsize]; for(int i=0; i

8、ge = new pageInfor[Psize]; for(i=0; i

9、i=0; i= block[pos].timer) pos = i;//找到應予置換頁面,返回BLOCK中位置 return pos; } void PRA::di

10、splay(void) { for(int i=0; i

11、 else { space = findSpace(); if(space != -1) { block[space] = page[i]; display(); } else { for(int k=0; k

12、IMER為一個很大數 else { block[k].timer = j; break; } } position = findReplace(); block[position] = page[i]; display(); } } } } void PRA::LRU(void) { int exist,space,position ; for(int i = 0; i < Psize; i++) { exist = find

13、Exist(i); if(exist != -1) { cout<<"不缺頁"<

14、on] = page[i]; display(); } } for(int j=0; j

15、 if(space != -1) { block[space] = page[i]; display(); } else { position = findReplace(); block[position] = page[i]; display(); } } for(int j=0; j

16、r(int i=0; i應用LRU算法"<應用FIFO算法"<應用Optimal算法"<

17、<<"選擇<0>退出"<>select; switch(select) { case 0: break; case 1: cout<<"LRU算法結果如下:"<

18、; test.FIFO(); test.BlockClear(); cout<<"----------------------"<

19、 6、實驗結果 7、實驗心得 加深了對操作系統(tǒng)的認識,了解了操作系統(tǒng)中各種資源分配算法的實現,特別是對虛擬存儲,頁面置換有了深入的了解,并能夠用高級語言進展模擬演示。在這短短的兩周時間里,通過瀏覽、閱讀有關的資料,學到了很多東西,同時也發(fā)現僅僅書本的知識是遠遠不夠的,需要把知識運用到實踐中去,能力才能得到提高。 使用MFC可視化編程極大的減少了編寫的代碼量,直觀的界面設計,不但便于修改,而且簡化了界面程序代碼的編寫 兩種頁面置換算法FIFO和LRU理解起來相當容易,但在實際編程實現的時候需要注意各種細節(jié),需要耐心細致,實際編程中遇到一些細節(jié)上的小問題確實需要仔細考慮才行。 14 / 14

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

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!