版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
試驗四存放管理試驗匯報一、試驗?zāi)繕舜娣殴芾碇饕πе皇呛侠淼胤峙淇臻g。請求頁式管理是一個慣用虛擬存放管理技術(shù)。本試驗?zāi)繕耸墙?jīng)過請求頁式管理中頁面置換算法模擬設(shè)計,了解虛擬存放技術(shù)特點,掌握請求頁式存放管理頁面置換算法。二、試驗內(nèi)容經(jīng)過計算不一樣算法命中率比較算法優(yōu)劣。同時也考慮了用戶內(nèi)存容量對命中率影響。 頁面失效次數(shù)為每次訪問對應(yīng)指令時,該指令所對應(yīng)頁不在內(nèi)存中次數(shù)。 在本試驗中,假定頁面大小為1k,用戶虛存容量為32k,用戶內(nèi)存容量為4頁到32頁。produce_addstream經(jīng)過隨機數(shù)產(chǎn)生一個指令序列,共320條指令。指令地址按下述標準生成:50%指令是次序執(zhí)行25%指令是均勻分布在前地址部分25%指令是均勻分布在后地址部分詳細實施方法是:在[0,319]指令地址之間隨機選取一起點m;次序執(zhí)行一條指令,即執(zhí)行地址為m+1指令;在前地址[0,m+1]中隨機選取一條指令并執(zhí)行,該指令地址為m’;次序執(zhí)行一條指令,地址為m’+1指令在后地址[m’+2,319]中隨機選取一條指令并執(zhí)行;重復(fù)上述步驟1)~5),直到執(zhí)行320次指令將指令序列變換稱為頁地址流在用戶虛存中,按每k存放10條指令排列虛存地址,即320條指令在虛存中存放方式為:第0條~第9條指令為第0頁(對應(yīng)虛存地址為[0,9]);第10條~第19條指令為第1頁(對應(yīng)虛存地址為[10,19]);。。。。。。第310條~第319條指令為第31頁(對應(yīng)虛存地址為[310,319]);按以上方式,用戶指令可組成32頁。計算并輸出下屬算法在不一樣內(nèi)存容量下命中率。先進先出算法(FIFO);最近最少使用算法(LRU);最好淘汰算法(OPT);最少訪問頁面算法(LFR);其中3)和4)為選擇內(nèi)容開始生成地址流開始生成地址流輸入算法號S1≤S≤4形成地址頁號用戶內(nèi)存空間msize=2Msize≤32OPT()FIFO()LRU()LFU()Msize加1S=?是否用其余算法繼續(xù)結(jié)束NY1234YN提醒犯錯,重新輸入五運行結(jié)果首先打印出產(chǎn)生指令信息,第一列為指令序列號,第二列為指令地址,第三列為指令所在虛頁號選擇FIFO調(diào)度算法,而且內(nèi)存從3也開始逐步增加到32頁,打印出缺頁次數(shù)缺頁率,命中率選擇LRU調(diào)度算法,而且內(nèi)存從3也開始逐步增加到32頁,打印出缺頁次數(shù)缺頁率,命中率選擇OPT調(diào)度算法,而且內(nèi)存從3也開始逐步增加到32頁,打印出缺頁次數(shù)缺頁率,命中率六試驗程序產(chǎn)生指令流文件produce_addstream.h#ifndefPRODUCE_ADDSTREAM_H#definePRODUCE_ADDSTREAM_H#include<stdio.h>#include<stdlib.h>#include<time.h>#include<iomanip.h>#include<vector>usingnamespacestd;#definerandom(x)(rand()%x)#defineMAX_LENGTH320structproduce{ intnum;//指令序號 intzhiling;//指令地址 intvirtualpage;//指令虛頁號 produce*next;};structproduce*creatlist();voidinsert(structproduce*first,structproduce*s);//插入一個節(jié)點(尾插法)voidprint(structproduce*first);//打印函數(shù)intmax(vector<vector<int>>,int);structproduce*creatlist(){ srand((int)time(0)); structproduce*first=newproduce; first->next=NULL; intm=0,m1=0; /* intyanzheng[20]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1}; for(inti=0;i<(MAX_LENGTH/4);i++) { structproduce*s0; s0=newproduce; s0->num=i*4+0; s0->zhiling=yanzheng[i*4+0]; s0->virtualpage=s0->zhiling; insert(first,s0); structproduce*s1; s1=newproduce; s1->num=i*4+1; s1->zhiling=yanzheng[i*4+1]; s1->virtualpage=s1->zhiling; insert(first,s1); structproduce*s2; s2=newproduce; s2->num=i*4+2; s2->zhiling=yanzheng[i*4+2]; s2->virtualpage=s2->zhiling; insert(first,s2); structproduce*s3; s3=newproduce; s3->num=i*4+3; s3->zhiling=yanzheng[i*4+3]; s3->virtualpage=s3->zhiling; insert(first,s3); } //*/ //* for(inti=0;i<(MAX_LENGTH/4);i++) { structproduce*s0; s0=newproduce; m=random(MAX_LENGTH); s0->num=i*4+0; s0->zhiling=m+1; s0->virtualpage=s0->zhiling/10; insert(first,s0); m1=random(m+1); structproduce*s1; s1=newproduce; s1->num=i*4+1; s1->zhiling=m1; s1->virtualpage=s1->zhiling/10; insert(first,s1); structproduce*s2; s2=newproduce; s2->num=i*4+2; s2->zhiling=m1+1; s2->virtualpage=s2->zhiling/10; insert(first,s2); structproduce*s3; s3=newproduce; s3->num=i*4+3; s3->zhiling=random(MAX_LENGTH-m1-2)+m1+2; s3->virtualpage=s3->zhiling/10; insert(first,s3); }//*/ returnfirst;}voidinsert(structproduce*first,structproduce*s){ structproduce*r=first; structproduce*p; while(r){p=r;r=r->next;} p->next=s;p=s; p->next=NULL;}voidprint(structproduce*first)//打印函數(shù){ structproduce*p; p=first->next; cout<<"隨機產(chǎn)生指令信息以下"<<endl; cout<<"指令序號"<<"指令地址"<<"指令虛頁號"<<endl; while(p) { cout<<p->num<<'\t'<<p->zhiling<<setw(14)<<p->virtualpage<<endl; p=p->next; }}intmax(vector<vector<int>>page,intMaxpage){ inta=0,position=0; for(inti=0;i<Maxpage;i++) { if(page[i][1]>a) { a=page[i][1]; position=i; } } returnposition;}#endif先來先出調(diào)度算法:fifo.h#ifndefFIFO_H#defineFIFO_Hvoidfifo(structproduce*first,intMaxpage){ vector<int>page(Maxpage);// for(inti=0;i<Maxpage;i++)page[i]=-1; intrear=0;//定義一個變量,指向要被替換位置 intpages;//定義變量保留當(dāng)前指令所在地址 intcount1=0;// intcount2=0;//缺頁次數(shù) intfind=1; structproduce*p=first->next; while(p) { pages=p->virtualpage; for(inti=0;i<Maxpage;i++) { if(page[i]==-1||count1<Maxpage) { page[i]=pages; count1++; count2++; find=1; break; } elseif(page[i]==pages) { find=1; break; } find=0; } if(find==0) { page[rear]=pages; rear++; rear=rear%Maxpage; count2++; } p=p->next; } cout<<"FIFO調(diào)度算法缺頁次數(shù)缺頁率命中率"<<endl; cout<<count2<<setw(25)<<double(count2)/MAX_LENGTH<<setw(10)<<1-double(count2)/MAX_LENGTH<<endl;}#endifFIFO_HLRU調(diào)度算法lru.h#ifndefLRU_H#defineLRU_H#include<vector>usingnamespacestd;//intmax(vector<vector<int>>,int);voidlru(structproduce*first,intMaxpage){ structproduce*p=first->next; vector<vector<int>>page2(Maxpage,vector<int>(2)); intcount1=0;//定義內(nèi)存已經(jīng)被占用頁數(shù) intcount2=0;//定義統(tǒng)計缺頁次數(shù) intequal=0;//定義判斷假如當(dāng)前頁數(shù)與比較頁數(shù),假如相等則為1,不然為0 intplace=0;//定義要替換位置 for(inti=0;i<Maxpage;i++) { page2[i][0]=-1;page2[i][1]=0; } while(p) { if(count1<Maxpage) { for(inti=0;i<Maxpage;i++) { page2[i][1]=page2[i][1]+1; if(page2[i][0]==-1) { page2[i][0]=p->virtualpage; count2++; break; } elseif(page2[i][0]==p->virtualpage) { page2[i][1]=1; } } count1++; } else { for(inti=0;i<Maxpage;i++) { page2[i][1]+=1; if(page2[i][0]==p->virtualpage) {equal=1;place=i;break;} } if(equal==1) { page2[place][1]=1; equal=0; } else { place=max(page2,Maxpage); page2[place][1]=1; page2[place][0]=p->virtualpage; count2++; } } p=p->next; } cout<<"LRU調(diào)度算法缺頁次數(shù)缺頁率命中率"<<endl; cout<<count2<<setw(24)<<double(count2)/MAX_LENGTH<<setw(10)<<1-double(count2)/MAX_LENGTH<<endl;}#endifLRU_HOPT調(diào)度算法opt.h#ifndefOPT_H#defineOPT_H#include<vector>usingnamespacestd;intsearch(structproduce*place,intposition);voidopt(structproduce*first,intMaxpage){ structproduce*p=first->next; vector<vector<int>>page3(Maxpage,vector<int>(2)); intcount1=0;//定義內(nèi)存已被使用頁數(shù) intcount2=0;//定義缺頁次數(shù) intcurrent=0;//定義當(dāng)前工作位置 intequal=0;//定義判斷假如當(dāng)前頁數(shù)與比較頁數(shù),假如相等則為1,不然為0 intplace=0;//定義要替換位置 for(inti=0;i<Maxpage;i++) { page3[i][0]=-1;page3[i][1]=0; } while(p) { //cout<<1111<<endl; if(count1<Maxpage) { for(inti=0;i<Maxpage;i++) { if(page3[i][0]==-1) { page3[i][0]=p->virtualpage; page3[i][1]=search(p,current); count2++; break; } elseif(page3[i][0]==p->virtualpage) { page3[i][1]=search(p,current); } } count1++; } else { for(inti=0;i<Maxpage;i++) { if(page3[i][0]==p->virtualpage) {equal=1;place=i;break;} } if(equal==1) { page3[place][1]=search(p,current); equal=0; } else { place=max(page3,Maxpage); page3[place][1]=search(p,current); page3[place][0]=p->virtualpage; count2+=1; } } p=p->next; current+=1; } cout<<"OPT調(diào)度算法缺頁次數(shù)缺頁率命中率"<<endl; cout<<count2<<setw(25)<<double(count2)/MAX_LENGTH<<setw(10)<<1-double(count2)/MAX_LENGTH<<endl;}intsearch(structproduce*place,intposition){ structproduce*p=place->next; intcurrent=place->virtualpage; intposition1=position+1; while(p) { if(current==p->virtualpage) { returnposition1; } position1++; p=p->next; } returnposition1;}#endif主函數(shù)控制臺ccglmain.cpp#include<iostream.h>#include"produce_addstream.h"#include"fifo.h"#include"lru.h"#include"opt.h
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 樂山市衛(wèi)生健康委員會2025年下半年公開選調(diào)事業(yè)單位工作人員備考題庫附答案
- 北京師大附中金鵬科技團專職教師招聘備考題庫必考題
- 南昌市勞動保障事務(wù)代理中心招聘4名項目外包服務(wù)人員參考題庫必考題
- 廣安市廣安區(qū)石筍鎮(zhèn)人民政府關(guān)于2025年選用片區(qū)紀檢監(jiān)督員的備考題庫附答案
- 招23人!高中可報、2025年茫崖市公安局面向社會公開招聘警務(wù)輔助人員備考題庫必考題
- 江投國華信豐發(fā)電有限責(zé)任公司公開招聘勞務(wù)派遣制工作人員 備考題庫必考題
- 輔警78名!2025年海南州公安局面向社會公開招聘警務(wù)輔助人員參考題庫附答案
- 雅安中學(xué)2025年公開選調(diào)事業(yè)人員的考試備考題庫附答案
- 安全生產(chǎn)執(zhí)法提示講解
- 2026重慶農(nóng)村商業(yè)銀行招聘試題及答案
- 食品行業(yè)停水、停電、停汽時應(yīng)急預(yù)案
- 《風(fēng)力發(fā)電廠調(diào)試規(guī)程》
- 搞笑小品劇本《我的健康誰做主》臺詞完整版-宋小寶徐崢
- 正大天虹方矩管鍍鋅方矩管材質(zhì)書
- 兔子解剖實驗報告
- 雙減背景下家校共育的問題及策略
- 建設(shè)工程第三方質(zhì)量安全巡查標準
- 管理養(yǎng)老機構(gòu) 養(yǎng)老機構(gòu)的服務(wù)提供與管理
- 乳化液處理操作規(guī)程
- 飯店轉(zhuǎn)讓協(xié)議合同
- 營建的文明:中國傳統(tǒng)文化與傳統(tǒng)建筑(修訂版)
評論
0/150
提交評論