




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件學院上機實 驗報告課程名稱:操作系統(tǒng)原理實驗項目:虛擬內存頁面置換算法實驗室:地獄018姓 名: 死神 學 號:專業(yè)班級: 實驗時間:2015/12/13實驗成績評閱教師實驗目的及要求通過這次實驗,加深對虛擬內存頁面置換概念的理解, 進一步掌握先進先出FIFO 最佳置換OPI和最近最久未使用LRU頁面置換算法的實現(xiàn)方法。結合 Linux的內層的分 析方法查看內存的分配過程及l(fā)inux kernel的內存管理機制二、實驗性質設計性三、實驗學時4學時四、實驗環(huán)境實驗環(huán)境1.實驗環(huán)境:C與C+®序設計學習與實驗系統(tǒng)2.知識準備:(1)使用Linux的基本命令;(2) 了解Linux v
2、mstat、free、top等命令查看linux系統(tǒng)的內存分配 情況;(3)掌握虛擬內存頁面置換算法 FIFO等基本算法理論。五、實驗內容及步驟假設有n個進程分別在 T1,,Tn時刻到達系統(tǒng),它們需要的服務時間分別為 S1,Sn=分別采用先來先服務FCF辭口短作業(yè)優(yōu)先SJF51程調度算法進行調度,計算每 個進程的完成時間、周轉時間和帶權周轉時間,并且統(tǒng)計n個進程的平均周轉時間和平均帶權周轉時間。步驟通過已知最小物理塊數(shù)、頁面?zhèn)€數(shù)、頁面訪問序列、及采用置換方式可以得出頁面 置換的缺頁次數(shù)和缺頁率,及每次缺頁時物理塊中存儲。1 .輸入的形式int PageOrderMaxNumber;/頁面序歹!
3、Jint PageNum,LackNum=0,BlockNum;/頁面?zhèn)€數(shù),缺頁次數(shù),最小物理塊數(shù)2 .輸出的形式double LackPageRate/缺頁率缺頁個數(shù)每次缺頁時物理塊中存儲程序所能達到的功能模擬先進先出FIF。最佳置換OPI和最近最久未使用LRU頁面置換算法的工作過程。 假設內存中分配給每個進程的最小物理塊數(shù)為m,在進程運行過程中要訪問的頁面?zhèn)€數(shù)為n,頁面訪問序列為P1,Pn,分別利用不同的頁面置換算法調度進程的頁面訪問序 列,給出頁面訪問序列的置換過程,計算每種算法缺頁次數(shù)和缺頁率。測試數(shù)據,包括 正確的輸入及其輸出結果和含有錯誤的輸入及其輸出結果。程序中用到的所有抽象數(shù)據
4、類型的定義、主程序的流程以及各程序模塊之間的層次 (調用)關系。int PageOrderMaxNumber;/頁面序歹!Jint PageCountMaxNumber=0;/計算內存內數(shù)據離下一次出現(xiàn)的距離int PageNum,LackNum=0,BlockNum;/頁面?zhèn)€數(shù),缺頁次數(shù),最小物理塊數(shù) double LackPageRate=0;bool found=false;整理范本頭文件流程圖六、實驗數(shù)據及結果分析運行截圖:圖6.1 XC: UlSOFrCTursnt>inm e»p. eze圖6.2明不續(xù)粕面八面4注1尊一是數(shù)數(shù)埋列 tiR個物序I 0 3 市;20救
5、 結據:墳,受X入套匚_' 3圖6.3七、實驗總結這次試驗,讓我加深了對虛擬內存頁面置換算法的理解, 進一步掌握先進先出FIFO 最佳置換OPI和最近最久未使用LRU頁面置換算法的實現(xiàn)方法。熟悉 Linux需要經過大 量的實驗、改進與思考,在編寫代碼的過程中遇到了一些問題要積極面對并通過討論上 網或者問老師解決。通過這次試驗我了解了虛擬內存置換算法的一些知識,是我對于所 學習的專業(yè)知識得到了更好的鞏固和提升。附錄源程序清單#include <iostream>using namespace std;#define MaxNumber 100void OPI(int Page
6、OrderMaxNumber,int PageCountMaxNumber, int PageNum,int LackNum,int BlockNum, double LackPageRate,boo found)int moduleMaxNumber;int sum=0;int i,j,k,m;for(i=0;i<BlockNum;i+)/將內存填滿 modulei=PageOrderi;sum+;for(j=0;j<=i;j+)cout<<modulej<<""cout<<endl;LackNum=BlockNum;for
7、(i=BlockNum;i<PageNum;i+)found=false;for(j=0;j<BlockNum;j+ )/遍歷已存儲,判斷是否缺頁if(modulej=PageOrderi)found=true;break;if(found=false)/缺頁,選擇替換for(j=0;j<BlockNum;j+) /計算內存內數(shù)據離下次出現(xiàn)的距離 PageCountj=0;for(k=i+1;k<PageNum;k+)if(modulej!=PageOrderk)PageCountj+;elsebreak;int max=PageCount0;int kind=0;fo
8、r(j=0;j<BlockNum;j+)找出最大值if(PageCountj>max)max=PageCountj;kind=j;modulekind=PageOrderi;LackNum+;for(m=0; m<3;m+)cout<<modulem<<""cout<<endl;LackPageRate=(LackNum*1.0)/PageNum;cout<<”該算法缺頁次數(shù)為:"<<LackNum<<endl;cout<<”該算法缺頁率為:"<&
9、lt;LackPageRate*100<<'%'<<endl;先進先出置換算法*/*void FIFO(int PageOrderMaxNumber,int PageCountMaxNumber, int PageNum,int LackNum,int BlockNum, double LackPageRate,boo found)int moduleMaxNumber;int sum=0;int i,j,m;for(i=0;i<BlockNum;i+)/將內存填滿modulei=PageOrderi;sum+;PageCounti=3-i;for
10、(j=0;j<=i;j+)cout<<modulej<<""cout<<endl;LackNum=BlockNum;for(i=BlockNum;i<PageNum;i+)found=false;for(j=0;j<BlockNum;j+ )/遍歷已存儲,判斷是否缺頁if(modulej=PageOrderi)found=true;break;if(found=false)/缺頁,選擇替換int max=PageCount0;int kind=0;for(j=0;j<BlockNum;j+)找出最大值if(Page
11、Countj>max)max=PageCountj;kind=j;for(int k=0;k<BlockNum;k+)/不是最大值,貝慳 +1if(k!=kind)PageCountk+;modulekind=PageOrderi;PageCountkind=0;/替換之后已經查詢的次數(shù)改為 LackNum+;for(m=0; m<3;m+)cout<<modulem<<""cout<<endl;LackPageRate=(LackNum*1.0)/PageNum;cout<<”該算法缺頁次數(shù)為:"
12、<<LackNum<<endl;cout<<”該算法缺頁率為:"<<LackPageRate*100<<'%'<<endl;最近最久未使用置換算法*/*void LRU(int PageOrderMaxNumber,int PageCountMaxNumber,int PageNum,int LackNum,int BlockNum, doublefound)int moduleMaxNumber;int sum=0;int i,j,m;for(i=0;i<BlockNum;i+)/將內存填
13、滿modulei=PageOrderi;sum+;PageCounti=3-i;for(j=0;j<=i;j+) cout<<modulej<<""cout<<endl;LackNum=BlockNum;for(i=BlockNum;i<PageNum;i+)found=false;for(j=0;j<BlockNum;j+)遍歷已存儲,判斷是否缺頁if(modulej=PageOrderi)found=true;PageCountj=0;/查詢后,更改次數(shù)for(int k=0;k<BlockNum;k+) if
14、(k!=j)PageCountk+; break;if(found=false)/缺頁,選擇替換int max=PageCount0;int kind=0;for(j=0;j<BlockNum;j+)找出最大值if(PageCountj>max)max=PageCountj;kind=j;for(int k=0;k<BlockNum;k+)if(k!=kind)PageCountk+;modulekind=PageOrderi;PageCountkind=0;/替換之后未查詢的次數(shù)改為 0LackNum+;for(m=0; m<3;m+)cout<<modu
15、lem<<""cout<<endl;LackPageRate=(LackNum*1.0)/PageNum;cout<<”該算法缺頁次數(shù)為:"<<LackNum<<endl;cout<<”該算法缺頁率為:"<<LackPageRate*100<<'%'<<endl;int main ()int PageOrderMaxNumber;/頁面序歹!Jint PageCountMaxNumber=0;/計算內存內數(shù)據離下一次出現(xiàn)的距離int
16、 PageNum,LackNum=0,BlockNum;須面?zhèn)€數(shù),缺頁次數(shù),最小物理塊數(shù) double LackPageRate=0;bool found=false;int chioce1=0,chioce2,chioce3;int i=0;while(chioce1=0)cout<<”是否重新輸入數(shù)據;0:不輸入,1:重新輸入:"cin>>chioce2;if(chioce2=1)cout<<"請輸入頁面?zhèn)€數(shù):"cin>> PageNum;cout<<"請輸入最小物理塊數(shù)"cin>>BlockNum;cout<<"請輸入頁面序列:"<<endl;for(i=0;i<PageNum;i+)cin>>PageOrderi;整理范本cout<<"請選擇算法:1-FIFQ 2-OPI, 3-LRU:"cin>>chioce3;if(chioce3=1)FIFO(PageOrder,PageCount,PageNum,LackNum, BlockNum, LackPageRate,整理范本found);elsei
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 零信任網絡中的狀態(tài)ful流量分析與威脅檢測-洞察闡釋
- ServiceMesh在Kubernetes中的應用-洞察闡釋
- 實時動態(tài)排序算法與用戶行為模式的深度學習融合-洞察闡釋
- 傳動帶傳動比智能調節(jié)技術創(chuàng)新創(chuàng)業(yè)項目商業(yè)計劃書
- 遼寧科技學院《中國少數(shù)民族文學史》2023-2024學年第二學期期末試卷
- 勞動教育實踐對大學生自我定位的影響
- 牡丹江大學《幼兒故事賞析與講述》2023-2024學年第二學期期末試卷
- 深圳技術大學《大學英語I》2023-2024學年第二學期期末試卷
- 游泳兒童課件
- 天津交通職業(yè)學院《BM三維建?!?023-2024學年第二學期期末試卷
- 風險評估理論與應用
- 研究生招生宣傳-中南大學雅二醫(yī)院課件
- 水泵測試報告
- 護理安全用藥制度
- 中國藥妝行業(yè)發(fā)展現(xiàn)狀、藥妝市場政策解讀及未來發(fā)展趨勢分析圖
- 畢業(yè)離校學生證遺失證明
- 《汽輪機原理》第03章1課件
- 家族成員關系輩分排列樹狀圖含女眷
- 圍堰施工監(jiān)理實施細則
- 新生血管性青光眼課件
- YY∕T 1797-2021 內窺鏡手術器械 腔鏡切割吻合器及組件
評論
0/150
提交評論