![《操作系統(tǒng)》實驗五:頁面置換算法模擬_第1頁](http://file4.renrendoc.com/view/d93ed4ca0a7c30dc933e83c6c972d30d/d93ed4ca0a7c30dc933e83c6c972d30d1.gif)
![《操作系統(tǒng)》實驗五:頁面置換算法模擬_第2頁](http://file4.renrendoc.com/view/d93ed4ca0a7c30dc933e83c6c972d30d/d93ed4ca0a7c30dc933e83c6c972d30d2.gif)
![《操作系統(tǒng)》實驗五:頁面置換算法模擬_第3頁](http://file4.renrendoc.com/view/d93ed4ca0a7c30dc933e83c6c972d30d/d93ed4ca0a7c30dc933e83c6c972d30d3.gif)
![《操作系統(tǒng)》實驗五:頁面置換算法模擬_第4頁](http://file4.renrendoc.com/view/d93ed4ca0a7c30dc933e83c6c972d30d/d93ed4ca0a7c30dc933e83c6c972d30d4.gif)
![《操作系統(tǒng)》實驗五:頁面置換算法模擬_第5頁](http://file4.renrendoc.com/view/d93ed4ca0a7c30dc933e83c6c972d30d/d93ed4ca0a7c30dc933e83c6c972d30d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
實用文檔-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN《操作系統(tǒng)》實驗五:頁面置換算法模擬實驗五.請求頁式存儲管理的模擬[實驗內(nèi)容]:熟悉虛擬存儲管理的各種頁面置換算法,并編寫模擬程序?qū)崿F(xiàn)請求頁式存儲管理的頁面置換算法最近最久未使用算法(LRU),要求在每次產(chǎn)生置換時顯示頁面分配狀態(tài)和缺頁率。[實驗要求]:1、運行給出的實驗程序,查看執(zhí)行情況,進而分析算法的執(zhí)行過程,在理解FIFO頁面置換算法和最近最久未使用算法(LRU)置換算法后,給出最佳置換算法的模擬程序?qū)崿F(xiàn),并集成到參考程序中。2、執(zhí)行2個頁面置換模擬程序,分析缺頁率的情況。最好頁框數(shù)和訪問序列長度可調(diào)節(jié),在使用同一組訪問序列數(shù)據(jù)的情況下,改變頁框數(shù)并執(zhí)行2個頁面置換模擬程序,查看缺頁率的變化。3、在每次產(chǎn)生置換時要求顯示分配狀態(tài)和缺頁率。程序的地址訪問序列通過隨機數(shù)產(chǎn)生,要求具有足夠的長度。最好頁框數(shù)和訪問序列長度可調(diào)節(jié)。實驗的執(zhí)行結(jié)果如下圖所示(左下圖為FIFO執(zhí)行結(jié)果,右下圖為LRU執(zhí)行結(jié)果):程序源代碼:#include<>#include""#include<>#include<>#include<>#include<>#include<>#include<>voidinitialize();//初始化相關(guān)數(shù)據(jù)結(jié)構(gòu)voidcreateps();//隨機生成訪問序列voiddisplayinfo();//顯示當前狀態(tài)及缺頁情況voidfifo();//先進先出算法intfindpage();//查找頁面是否在內(nèi)存voidlru();//最近最久未使用算法intinvalidcount=0;//缺頁次數(shù)intvpoint;//頁面訪問指針intpageframe[10];//分配的頁框intpagehistory[10];//記錄頁框中數(shù)據(jù)的訪問歷史intrpoint;//頁面替換指針intinpflag;//缺頁標志,0為不缺頁,1為缺頁structPageInfo//頁面信息結(jié)構(gòu){intserial[100];//模擬的最大訪問頁面數(shù),實際控制在20以上intflag;//標志位,0表示無頁面訪問數(shù)據(jù)intdiseffect;//缺頁次數(shù)inttotal_pf;//分配的頁框數(shù)inttotal_pn;//訪問頁面序列長度}pf_info;//////////////////////////////////////////////////////////////////////////初始化相關(guān)數(shù)據(jù)結(jié)構(gòu)voidinitialize(){ inti,pf; inpflag=0;//缺頁標志,0為不缺頁,1為缺頁 =0;//缺頁次數(shù) =0;//標志位,0表示無頁面訪問數(shù)據(jù) printf("\n請輸入要分配的頁框數(shù):");//自定義分配的頁框數(shù)scanf("%d",&pf); =pf; for(i=0;i<100;i++)//清空頁面序列 {[i]=-1;}}/////////////////////////////////////////////////////////////////////隨機生成訪問序列voidcreateps(void){ ints,i,pn;initialize();//初始化相關(guān)數(shù)據(jù)結(jié)構(gòu) printf("\n請輸入要隨機生成訪問序列的長度:");//自定義隨機生成訪問序列的長度scanf("%d",&pn);srand(rand());//初始化隨機數(shù)隊列的"種子" s=((float)rand()/32767)*50+pn;//隨機產(chǎn)生頁面序列長度 =s; for(i=0;i<s;i++)//產(chǎn)生隨機訪問序列 { [i]=((float)rand()/32767)*16;//隨機數(shù)的大小在0-15之間} }//////////////////////////////////////////////////////////////////////////顯示當前狀態(tài)及缺頁情況voiddisplayinfo(void){inti,n;if(vpoint==0){ printf("\n=============頁面訪問序列=============\n");for(i=0;i<;i++) { printf("%4d",[i]); if((i+1)%10==0)printf("\n");//每行顯示10個 }printf("\n======================================\n");}printf("訪問%3d:內(nèi)存<",[vpoint]);for(n=0;n<;n++)//頁框信息{if(pageframe[n]>=0) printf("%3d",pageframe[n]); elseprintf("");}printf(">");if(inpflag==1)//缺頁標志,0為不缺頁,1為缺頁{ printf("==>缺頁"); printf("缺頁率%3.1f",(float)*vpoint);}printf("\n");}//////////////////////////////////////////////////////////////////////////查找頁面是否在內(nèi)存,1為在內(nèi)存,0為不在即缺頁intfindpage(intpage){ intn;for(n=0;n<;n++) { pagehistory[n]++;//訪問歷史加1 } for(n=0;n<;n++) {if(pageframe[n]==page) { inpflag=0;//inpflag缺頁標志,0為不缺頁,1為缺頁 pagehistory[n]=0;//置訪問歷史為0 return1; } } inpflag=1; //頁面不存在,缺頁return0; }//////////////////////////////////////////////////////////////////////////FIFO頁面置換算法voidfifo(void){intn,count,pstate;rpoint=0;//頁面替換指針初始化為0invalidcount=0;//缺頁數(shù)初始化為0createps();//隨機生成訪問序列count=0;//是否裝滿是所有的頁框for(n=0;n<;n++)//清除頁框信息{pageframe[n]=-1;}inpflag=0;//缺頁標志,0為不缺頁,1為缺頁for(vpoint=0;vpoint<;vpoint++)//執(zhí)行算法{ pstate=findpage[vpoint]);//查找頁面是否在內(nèi)存 if(count<//開始時不計算缺頁 { if(pstate==0)//頁不存在則裝入頁面 { pageframe[rpoint]=[vpoint]; rpoint=(rpoint+1)%; count++; } } else//正常缺頁置換 { if(pstate==0)//頁不存在則置換頁面 { pageframe[rpoint]=[vpoint]; rpoint=(rpoint+1)%; ++;//缺頁次數(shù)加1 } }Sleep(10); displayinfo();//顯示當前狀態(tài)} //置換算法循環(huán)結(jié)束getch();return;}/////////////////////////////////////////////////////////////////////LRU頁面置換算法voidlru(void){intn,count,pstate,max;rpoint=0;//頁面替換指針invalidcount=0;//缺頁次數(shù)初始化為0createps();//隨機生成訪問序列count=0;//是否裝滿所有的頁框for(n=0;n<;n++){ pageframe[n]=-1;//清除頁框信息 pagehistory[n]=0;//清除頁框歷史}inpflag=0;//缺頁標志,0為不缺頁,1為缺頁for(vpoint=0;vpoint<;vpoint++)//執(zhí)行算法{ pstate=findpage[vpoint]);//查找頁面是否在內(nèi)存 if(count<//開始時不計算缺頁 {if(pstate==0)//頁不存在則裝入頁面 { pageframe[rpoint]=[vpoint];//把要調(diào)入的頁面放入一個空的頁框里 rpoint=(rpoint+1)%; count++; } } else//正常缺頁置換 { if(pstate==0)//頁不存在則置換頁面 { max=0; for(n=1;n<;n++) { if(pagehistory[n]>pagehistory[max]) { max=n; } } rpoint=max; pageframe[rpoint]=[vpoint]; pagehistory[rpoint]=0; ++;//缺頁次數(shù)加1 } }Sleep(10); displayinfo();//顯示當前狀態(tài)} //置換算法循環(huán)結(jié)束_getch();return;}/////////////////////最佳置換算法自己完成/////////////////////////////////////////////////////////////////////主函數(shù)intmain(){charch;system("cls");while(true){printf("*******************************************\n");printf("若要執(zhí)行FIFO頁面置算法請按1\n"); printf("若要執(zhí)行LRU頁面置算法請按2\n");printf("若要退出請按3\n");printf("*******************************************\n");printf("Enteryourchoice(1or2or3):"); do {//如果輸入信息不正確,繼續(xù)輸入ch=(char)getch(); }while(ch!='1'&&ch!='2'&&ch!='3');printf("\n\n你按的是:%c,現(xiàn)在為你執(zhí)行對應操作。",ch);if(ch==
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識產(chǎn)權(quán)保護的法律框架與實施策略
- 續(xù)約合同申請書
- 甘肅塑磁釹鐵硼項目申請報告模板
- 電子銀行渠道的客戶滿意度提升策略
- 退股申請書范文
- 五年級數(shù)學下冊教案-第4單元 長方體(二)-北師大版
- 簡單低保申請書
- 水質(zhì)監(jiān)測技術(shù)在電廠的新應用
- 中國全地形車項目投資可行性研究報告
- “十三五”重點項目-護理設備項目節(jié)能評估報告(節(jié)能專)
- 《煤礦安全規(guī)程》專家解讀(詳細版)
- 招聘面試流程sop
- 建筑公司工程財務報銷制度(精選7篇)
- 工程設計方案定案表
- 最新2022年減肥食品市場現(xiàn)狀與發(fā)展趨勢預測
- 第一章-天氣圖基本分析方法課件
- 發(fā)展?jié)h語初級綜合1:第30課PPT課件[通用]
- 暖氣管道安裝施工計劃
- 體育實習周記20篇
- 初二物理彈力知識要點及練習
- 復合材料成型工藝及特點
評論
0/150
提交評論