![p[])這函數(shù)是產(chǎn)生n個(gè)1~10的隨機(jī)數(shù)放到p[]數(shù)組里面_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/af5b9185-6fb6-4914-91de-ad691642c57e/af5b9185-6fb6-4914-91de-ad691642c57e1.gif)
![p[])這函數(shù)是產(chǎn)生n個(gè)1~10的隨機(jī)數(shù)放到p[]數(shù)組里面_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/af5b9185-6fb6-4914-91de-ad691642c57e/af5b9185-6fb6-4914-91de-ad691642c57e2.gif)
![p[])這函數(shù)是產(chǎn)生n個(gè)1~10的隨機(jī)數(shù)放到p[]數(shù)組里面_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/af5b9185-6fb6-4914-91de-ad691642c57e/af5b9185-6fb6-4914-91de-ad691642c57e3.gif)
![p[])這函數(shù)是產(chǎn)生n個(gè)1~10的隨機(jī)數(shù)放到p[]數(shù)組里面_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/af5b9185-6fb6-4914-91de-ad691642c57e/af5b9185-6fb6-4914-91de-ad691642c57e4.gif)
![p[])這函數(shù)是產(chǎn)生n個(gè)1~10的隨機(jī)數(shù)放到p[]數(shù)組里面_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/23/af5b9185-6fb6-4914-91de-ad691642c57e/af5b9185-6fb6-4914-91de-ad691642c57e5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include <stdlib.h> #include <iostream.h>#include <time.h> void rand(int n,int p)/這函數(shù)是產(chǎn)生n個(gè)110的隨機(jī)數(shù)放到p數(shù)組里面 int START=1; int END=10; int v; int i; srand(time(NULL); for(i=0; i<n; i+) v=rand()%(END-START+1)+START;
2、; pi=v; struct Pro int num,time;/num存放具體的內(nèi)容,time在不同算法里面有不同的意義; /它們是物理塊和頁(yè)面的數(shù)據(jù)結(jié)構(gòu)int Input(int m,int N,Pro *p,Pro *page)/完成p數(shù)組和page的初始化工作 /p數(shù)組是存放頁(yè)面的空間,m是頁(yè)面的長(zhǎng)度&
3、#160; /page是可以使用的物理塊,N是物理塊的大小 cout<<endl<<"請(qǐng)輸入各頁(yè)面號(hào)"<<endl; int *p2=new intm; rand(m,p2); for(int i=0;i<m;i+) pi.num=p2i; pi.time=0; for(i=0
4、;i<N;i+)/初試化頁(yè)面基本情況 pagei.num=0; pagei.time=N+2-i; return m; int Search(int e,Pro *page,int N)/算法里面都要用到它。/它是找e頁(yè)是否在page物理塊中,N是物理塊的大小 for(int i=0;i<N;i+) if(e=pagei.num) return i;/如果找到,就返回在物理塊中的位置給Searc
5、h return -1;/找不到,就返回-1 int Max(Pro *page,int N)/LRU算法用到的/找出在page塊中,time最大的值和位置,同時(shí)位置返回/time最大,就代表了最久沒(méi)被使用的數(shù) int e=page0.time,i=0; int k=0; while(i<N)/找出離現(xiàn)在時(shí)間最長(zhǎng)的頁(yè)面 if(e<pagei.time) k=i;
6、;i+; return k; int Compfu(Pro *page,int i,int t,Pro p,int m)/OPT算法用到的/找出如果paget要等于p,并且zai pipm這個(gè)區(qū)間內(nèi),走的次數(shù),最大的數(shù) int count=0;/count是保存走的步數(shù) for(int j=i;j<m;j+) if(paget.num=pj.num )break;/如果相等,跳出循環(huán) else count+;/不等就步數(shù)加1 return count;
7、0;int Min(Pro page,int N)/LFU算法用到的 /page是可以使用的物理塊,N是物理塊的大小 /找到出現(xiàn)次數(shù)最小的的數(shù),并把位置返回 int k=0; int min=page0.time; for(int i=0;i<N;i+) if(min>pagei.time) k=i; return k; void FIFO(Pro p,Pro page,int m,int N)/p數(shù)組是存
8、放頁(yè)面的空間,m是頁(yè)面的長(zhǎng)度 /page是可以使用的物理塊,N是物理塊的大小 float n=0;/n用來(lái)保存缺頁(yè)的次數(shù) int i=0;/i是循環(huán)變量,它是表示走到頁(yè)面的位置。 int t=0;/t是用來(lái)表示物理塊走到的位置 cout<<"頁(yè)面置換情況: "<<endl; for(i=0;i<m;i+) if(Search(pi.num,page,N)>=0)
9、 continue;/找到相同的頁(yè)面,就跳到下一次循環(huán),不做處理。 else /在找不到的時(shí)候,通過(guò)t=t%N,求出這次來(lái)替換物理塊的位置 t=t%N; n+;/缺頁(yè)數(shù)加1 paget.num=pi.num; t+;/位置加1
10、; cout<<"缺頁(yè)次數(shù):"<<n<<" 缺頁(yè)率:"<<n/m<<" 命中率:"<<1-n/m<<endl; void LFU(Pro p,Pro page,int m,int N)/p數(shù)組是存放頁(yè)面的空間,m是頁(yè)面的長(zhǎng)度 /page是可以使用的物理塊,N是物理塊的大小,
11、160;float n=0; int i=0; int t=0; for(i=0;i<N;i+) pagei.time=0; cout<<"頁(yè)面置換情況: "<<endl; for(i=0;i<m;i+) if(Search(pi.num,page,N)>=0) pagei.time+;/找到相同的頁(yè)面,time加1
12、0;continue;/ else /找出使用最少的頁(yè)面進(jìn)行調(diào)換 t=Min(page,N);/找到出現(xiàn)次數(shù)最小的的數(shù),并把位置返回t paget.num=pi.num; paget.time=0;/該頁(yè)time清零 n+;/缺頁(yè)數(shù)加1 cout<<"缺頁(yè)次數(shù):"<<n<&
13、lt;" 缺頁(yè)率:"<<n/m<<" 命中率:"<<1-n/m<<endl; void OPT(Pro p,Pro page,int m,int N)/p數(shù)組是存放頁(yè)面的空間,m是頁(yè)面的長(zhǎng)度 /page是可以使用的物理塊,N是物理塊的大小 float n=0;/n用來(lái)保存缺頁(yè)的次數(shù) &
14、#160; int i=0;/i是循環(huán)變量,它是表示走到頁(yè)面的位置。 int t=0; /t是用來(lái)表示物理塊走到的位置 while(i<m) if(Search(pi.num,page,N)>=0) i+;/如果找到了,就不做處理。 else/如果
15、找不到 int temp=0,cn;/cn用來(lái)保存離后面最遠(yuǎn)的數(shù) for(t=0;t<N;t+)/對(duì)物理塊里面的每個(gè)數(shù)進(jìn)行遍歷 if(temp<Compfu(page,i,t,p,m)/temp用來(lái)保存 /paget= pi
16、pm這個(gè)區(qū)間內(nèi),走的次數(shù),最大的數(shù) temp=Compfu(page,i,t,p,m); cn=t; pagecn=pi;/把當(dāng)前的值放要發(fā)生要走最遠(yuǎn)的數(shù),也就最不可能最近出現(xiàn)的數(shù) n=n
17、+1;/缺頁(yè)數(shù)加1 i+;/跳到下一次循環(huán) cout<<"缺頁(yè)次數(shù):"<<n<<" 缺頁(yè)率:"<<n/m<<" 命中率:"<<1-n/m<<endl; void LRU(Pro p,Pro pag
18、e,int m,int N)/p數(shù)組是存放頁(yè)面的空間,m是頁(yè)面的長(zhǎng)度 /page是可以使用的物理塊,N是物理塊的大小 float n=0;/n用來(lái)保存缺頁(yè)的次數(shù) int i=0;/i是循環(huán)變量,它是表示走到頁(yè)面的位置。 int t=0; /t是用來(lái)表示物理塊走到的位置 cout<<"頁(yè)面置換情況: "<<endl; &
19、#160; while(i<m) int k; k=t=Search(pi.num,page,N); if(t>=0) paget.time=0;/如果找到,就要把當(dāng)前的paget.time次數(shù)
20、60; /清零 else/找不到的時(shí)候,發(fā)生缺頁(yè) n+;
21、/缺頁(yè)數(shù)加1 t=Max(page,N);/找出page物理塊里面,最久沒(méi)被時(shí)候的數(shù) /同時(shí)把最久沒(méi)被時(shí)候的數(shù)在物理塊里的位置傳給t paget.num=pi.num;/最久沒(méi)被使
22、用的是被現(xiàn)在的數(shù)代替 paget.time=0;/同時(shí)清零 for(int j=0;j<N;j+)/把缺頁(yè)以外的數(shù),把它沒(méi)被使用的次數(shù)加1 if(j=t) continue;
23、 paget.time+; i+;/跳到下一次循環(huán) cout<<"缺頁(yè)次數(shù):"<<n<<" 缺頁(yè)率:"<<n/m<<" 命中率:
24、"<<1-n/m<<endl; void main() int m=0,t=0,N=0; cout<<"請(qǐng)輸入實(shí)際頁(yè)數(shù):" cin>>m; Pro *p=new Prom;/p是用來(lái)放頁(yè)面的地方 cout<<"可用內(nèi)存頁(yè)面數(shù)"<<endl; cin>>N; Pro *page=new ProN;/page是放物理塊的地方 char c; float n=0; Input(m,N,p,page);/m是頁(yè)面的總長(zhǎng),N是物理塊的長(zhǎng)度 do cout<<"f:FIFO頁(yè)面置換"<&l
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位整修合同范本
- 2025年天津從業(yè)資格證貨運(yùn)題庫(kù)答案大全
- 關(guān)于消防器材購(gòu)買(mǎi)合同范本
- 企業(yè)聯(lián)營(yíng)合作合同范本
- 醫(yī)美手術(shù)合同范本
- 單位公車(chē)出租合同范本
- 加高工程合同范本
- 農(nóng)戶(hù)合同范本
- 劇組服裝采購(gòu)合同范本
- 共享單車(chē)租金合同范本
- 《體育開(kāi)學(xué)第一課:體育常規(guī)教育》課件
- 上海市高新技術(shù)成果轉(zhuǎn)化項(xiàng)目認(rèn)定申請(qǐng)書(shū)
- 休閑體育小鎮(zhèn)規(guī)劃方案
- 海南紅色拓展培訓(xùn)方案
- 鎂合金汽車(chē)輪轂的研究與開(kāi)發(fā)
- 新能源船舶動(dòng)力系統(tǒng)的工程實(shí)踐
- SHAFER氣液聯(lián)動(dòng)執(zhí)行機(jī)構(gòu)培訓(xùn)
- 小學(xué)生守則、日常行為規(guī)范教育實(shí)施方案
- 湖南省六年級(jí)上冊(cè)數(shù)學(xué)期末試卷(含答案)
- 部編版小學(xué)六年級(jí)道德與法治下冊(cè)課堂達(dá)標(biāo)檢測(cè)試卷全冊(cè)含答案
- 巖土工程中的非線性問(wèn)題分析
評(píng)論
0/150
提交評(píng)論