版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
頁面置換算法的模擬實現(xiàn)及命中率對比實驗報告一、問題描述課程設(shè)計目的(1)、通過請求頁式管理方式中頁面置換算法的模擬設(shè)計,了解虛擬存儲術(shù)的特點,掌握請求頁式存儲管理中的頁面置換算法。(2)、課程設(shè)計內(nèi)容模擬實現(xiàn)OPT(最佳置換)、FIFO和LRU算法,并計算命中率。、課程設(shè)計要求:首先用隨機數(shù)生成函數(shù)產(chǎn)生“指令”序列,然后將指令序列變換成相應的頁地址流,再計算不同算法下的命中率。通過隨機數(shù)產(chǎn)生一個指令序列,共產(chǎn)生400條。其中50%的指令是順序執(zhí)行的(靈位50%就是非順序),且25%的指令分布在前半部分地址空間,25%的指令分布在后半部分地址空間。將指令地址流變換成頁地址流循環(huán)運行,使用戶內(nèi)存容量從4到40,。計算每個內(nèi)存容量下不同頁面置換算法的命中率。二、概要設(shè)計1.程序的數(shù)據(jù)結(jié)構(gòu):#definetotal_instruction100/*指令流長*/#defineM100/*實際頁數(shù)*/#defineN5//可用頁面數(shù)structPro{intnum,time;};inta[total_instruction];intpage[N];2.程序的主函數(shù):intmain(){Prop[total_instruction];Pro*page=newPro[N];charc;intt=0,i;floatn=0;Input(p);do{for(i=0;i<N;i++)//初試化頁面基本情況{page[i].num=-1;page[i].time=2-i;}printf("系統(tǒng)產(chǎn)生的隨機數(shù)為:");for(inte=0;e<M;e++)cout<<p[e].num<<"";cout<<endl;i=0;cout<<"f:FIFO頁面置換"<<endl;cout<<"l:LRU頁面置換"<<endl;cout<<"o:OPT頁面置換"<<endl;cout<<"按其它鍵結(jié)束"<<endl;cin>>c;if(c=='f')//FIFO頁面置換{n=0;cout<<"頁面置換情況:"<<endl;while(i<total_instruction){if(Search(p[i].num,page)>=0)i++;//找到相同的頁面else{if(t==N)t=0;else{n++;//page[t].num=p[i].num;print(page);t++;}}}cout<<"缺頁次數(shù):"<<n<<"命中率:"<<1-n/total_instruction<<endl;}if(c=='l')//LRU頁面置換{n=0;cout<<"頁面置換情況:"<<endl;while(i<total_instruction){intk;k=t=Search(p[i].num,page);if(t>=0)page[t].time=0;else{n++;t=Max(page);page[t].num=p[i].num;page[t].time=0;}for(intj=0;j<N;j++){if(j!=t)page[j].time++;}/*if(t==0){page[t+1].time++;page[t+2].time++;}if(t==1){page[2].time++;page[0].time++;}if(t==2){page[1].time++;page[0].time++;}*/if(k==-1)print(page);i++;}cout<<"缺頁次數(shù):"<<n<<"命中率:"<<1-n/total_instruction<<endl;}if(c=='o')//OPT頁面置換{n=0;while(i<total_instruction){if(Search(p[i].num,page)>=0)i++;else{if(page[N-1].num==-1){for(intg=0;g<N;g++)if(page[g].num==-1){page[g].num=p[i].num;i++;n++;print(page);break;}}else{inttemp=-1,cn;for(t=0;t<N;t++){if(temp<Compfu(page,i,t,p)){temp=Compfu(page,i,t,p);cn=t;}}page[cn]=p[i];n++;print(page);i++;}}}cout<<"缺頁次數(shù):"<<n<<"命中率:"<<1-n/total_instruction<<endl;}}while(c=='f'||c=='l'||c=='o');return0;}三、詳細設(shè)計程序代碼如下:#include<stdlib.h>#include<iostream>#include<time.h>#include<stdio.h>usingnamespacestd;#definetotal_instruction100/*指令流長*/#defineM100/*實際頁數(shù)*/#defineN5//可用頁面數(shù)structPro{intnum,time;};inta[total_instruction];intpage[N];voidInput(Prop[total_instruction]){intm,i,m1,m2;srand((unsignedint)time(NULL));m=rand()%400;//for(i=0;i<total_instruction;)/*產(chǎn)生指令隊列*/{if(m<0||m>399){printf("Wheni==%d,Error,m==%d\n",i,m);exit(0);}a[i]=m;/*任選一指令訪問點m*/a[i+1]=a[i]+1;a[i+2]=a[i]+2;/*順序執(zhí)行兩條指令*/intm1=rand()%m;/*執(zhí)行前地址指令m1*/a[i+3]=m1;a[i+4]=m1+1;a[i+5]=m1+2;/*順序執(zhí)行兩條指令*///s=(158-a[i+5])*rand()/32767/32767/2+a[i+5]+2;m2=rand()%(157-m1)+m1+3;a[i+6]=m2;if((m2+2)>159){a[i+7]=m2+1;i+=8;}else{a[i+7]=m2+1;a[i+8]=m2+2;i=i+9;}m=rand()%m2;}for(i=0;i<total_instruction;i++)/*將指令序列變換成頁地址流*/{p[i].num=a[i]/10;p[i].time=0;}}voidprint(Pro*page1)//打印當前的頁面{Pro*page=newPro[N];page=page1;for(inti=0;i<N;i++)printf("%-4d",page[i].num);//cout<<page[i].num<<"";cout<<endl;//free(page);}intSearch(inte,Pro*page1){Pro*page=newPro[N];page=page1;for(inti=0;i<N;i++)if(e==page[i].num)returni;return-1;}intMax(Pro*page1){Pro*page=newPro[N];page=page1;inte=page[0].time,i=0;while(i<N)//找出離現(xiàn)在時間最長的頁面{if(e<page[i].time)e=page[i].time;i++;}for(i=0;i<N;i++)if(e==page[i].time)returni;return-1;}intCompfu(Pro*page1,inti,intt,Prop[M]){Pro*page=newPro[N];page=page1;intcount=0;for(intj=i;j<M;j++){if(page[t].num==p[j].num)break;elsecount++;}returncount;}intmain(){Prop[total_instruction];Pro*page=newPro[N];charc;intt=0,i;floatn=0;Input(p);do{for(i=0;i<N;i++)//初試化頁面基本情況{page[i].num=-1;page[i].time=2-i;}printf("系統(tǒng)產(chǎn)生的隨機數(shù)為:");for(inte=0;e<M;e++)cout<<p[e].num<<"";cout<<endl;i=0;cout<<"f:FIFO頁面置換"<<endl;cout<<"l:LRU頁面置換"<<endl;cout<<"o:OPT頁面置換"<<endl;cout<<"按其它鍵結(jié)束"<<endl;cin>>c;if(c=='f')//FIFO頁面置換{n=0;cout<<"頁面置換情況:"<<endl;while(i<total_instruction){if(Search(p[i].num,page)>=0)i++;//找到相同的頁面else{if(t==N)t=0;else{n++;//page[t].num=p[i].num;print(page);t++;}}}cout<<"缺頁次數(shù):"<<n<<"命中率:"<<1-n/total_instruction<<endl”}if(c=='l')//LRU頁面置換{n=0;cout<<"頁面置換情況:"<<endl;while(i<total_instruction){intk;k=t=Search(p[i].num,page);if(t>=0)page[t].time=0;else{n++;t=Max(page);page[t].num=p[i].num;page[t].time=0;}for(intj=0;j<N;j++){if(j!=t)page[j].time++;}/*if(t==0){page[t+1].time++;page[t+2].time++;}if(t==1){page[2].time++;page[0].time++;}if(t==2){page[1].time++;page[0].time++;}*/if(k==-1)print(page);i++;}cout<<"缺頁次數(shù):"<<n<<"命中率:"<<1-n/total_instruction<<endl;}if(c=='o')//OPT頁面置換{n=0;while(i<total_instruction){if(Search(p[i].num,page)>=0)i++;else{if(page[N-1].num==-1){for(intg=0;g<N;g++)if(page[g].num==-1){page[g].num=p[i].num;i++;n++;print(page);break;}}else{inttemp=-1,cn;for(t=0;t<N;t++){if(temp<Compfu(page,i,t,p)){temp=Compfu(page,i,t,p);cn=t;}}page[cn]=p[i];n++;prin
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 某音效設(shè)計工作室直播活動管理計劃
- 園林綠化苗木種植安全技術(shù)交底模板
- 印制電路鍍覆工安全生產(chǎn)能力模擬考核試卷含答案
- 2025至2030中國免稅品消費市場調(diào)研及政策放寬預期與渠道投資戰(zhàn)略研究報告
- 催化汽油吸附脫硫裝置操作工安全技能測試競賽考核試卷含答案
- 2025至2030中國咖啡連鎖品牌區(qū)域競爭及消費者畫像分析報告
- 超重型汽車列車司機安全素養(yǎng)知識考核試卷含答案
- 糖汁中和工安全素養(yǎng)強化考核試卷含答案
- 2025-2030醫(yī)療耗材供應鏈供需現(xiàn)狀研究投資效益規(guī)劃發(fā)展研究報告
- 浸漬干燥工安全培訓模擬考核試卷含答案
- 2025年云南省中考數(shù)學真題試卷及答案
- GB/T 18916.8-2025工業(yè)用水定額第8部分:合成氨
- 環(huán)境監(jiān)測項目中的數(shù)據(jù)保密措施
- 2022危險廢物管理計劃和管理臺賬制定技術(shù)導則
- CISP(CISO與CISE)題庫及答案解析(700道)
- 《CAD的簡介和作用》課件
- 配電箱移交協(xié)議書模板
- 2024-2030年中國桉葉(油)素市場專題研究及市場前景預測評估報告
- 攝像機基礎(chǔ)知識攝像機基礎(chǔ)知識
- 齒軌卡軌車資料
- 二代測序NGS培訓班課件 4肖艷群-NGS實驗室設(shè)置及質(zhì)量控制2017.10.15福州培訓班
評論
0/150
提交評論