版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
計(jì)算機(jī)體系結(jié)構(gòu)實(shí)驗(yàn)報(bào)告班級:計(jì)科0902班姓名:張華敏學(xué)號:0909090814
FIFU算法實(shí)驗(yàn)內(nèi)容:編寫一段程序來模擬頁面置換算法中的FIFU算法的實(shí)現(xiàn)算法設(shè)計(jì):設(shè)置一個產(chǎn)生隨機(jī)數(shù)的函數(shù)rand()產(chǎn)生隨機(jī)數(shù)來模擬程序所需訪問的頁面的標(biāo)號,如果頁面需要被訪問則把頁面中的一個標(biāo)志位設(shè)為in表示他已經(jīng)被調(diào)入內(nèi)存,如果再次需要訪問此頁面是只需檢查此頁面的標(biāo)志位是否為in就可判斷它是否已經(jīng)存在在內(nèi)存中了,如果已經(jīng)存在則可直接使用,如果不存在則需調(diào)入,在調(diào)入新頁面是先檢查內(nèi)存空間是否已滿,如果未滿則直接調(diào)入,如果已經(jīng)滿了則需選擇一個頁面將其調(diào)出,調(diào)出時就把頁面的標(biāo)志位設(shè)為out。選擇頁面的規(guī)則是:將進(jìn)入內(nèi)存時間最久的頁面調(diào)出去,為了達(dá)到這一目的,在頁面中設(shè)置一個計(jì)數(shù)器,每當(dāng)有新頁面調(diào)入內(nèi)存時則將內(nèi)存中已經(jīng)存在的頁面計(jì)數(shù)器自動加一,調(diào)出頁面時就選擇那個計(jì)數(shù)器最大值的頁面,調(diào)出后重新將計(jì)數(shù)器設(shè)為零。遇到的問題及解決方案:在做此實(shí)驗(yàn)時遇到了一些小問題,如在C語言中函數(shù)名定義為export()則會報(bào)錯。在調(diào)用有返回值的函數(shù)是如果直接ints=use(pag)則會運(yùn)行出錯,要先分開寫如:ints,s=use(pag).四,源代碼頭文件.cpp#include<stdio.h>#include<stdlib.h>intt;//全局變量,用來盛放rand()函數(shù)產(chǎn)生的隨機(jī)數(shù)enumboolean{in,out};//定義一個枚舉類型/////////如果把in,out換成true,false則會處錯誤typedefstruct{intnum;//頁面編號charcontent;//頁面內(nèi)容enumbooleanflog;//判斷此頁面是否頁調(diào)入,調(diào)入為true,否則為false;intcount;//頁面計(jì)數(shù)器intusebit;//使用位,被使用過值為1,否則為0}page;FIFU.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>#include"頭文件.cpp"intcapacity=3;//設(shè)置內(nèi)存最多可以容納的頁面數(shù)voidinitialize(pagep[])//初始化頁面函數(shù){for(inti=0;i<5;i++)//初始化頁面,頁面內(nèi)容分別為小寫字母abcde,計(jì)數(shù)器全部為0{p[i].num=i;p[i].content=i+97;p[i].flog=out;p[i].count=0;}}intuse(pagep[]){t=rand()%5;//產(chǎn)生一個0-5的隨機(jī)數(shù),if(p[t].flog==in){printf("\t\t%d頁面命中\(zhòng)n",t);//for(inti=0;i<5;i++)//調(diào)入此頁面后其他以在內(nèi)存中存在的頁面計(jì)數(shù)器加1//{//if(p[i].flog==in)//p[i].count++;//}return(1);}elsereturn(0);}voidimport(pagep[])//調(diào)入頁面的函數(shù){/*intt=rand()%5;//產(chǎn)生一個0-5的隨機(jī)數(shù),if(p[t].flog==in)printf("\t\t%d頁面命中\(zhòng)n",t);*///if(p[t].flog==out)//如果此頁面未被調(diào)入內(nèi)存則立即調(diào)入p[t].flog=in;capacity--;//調(diào)入后內(nèi)存空間減少一葉for(inti=0;i<5;i++)//調(diào)入此頁面后其他以在內(nèi)存中存在的頁面計(jì)數(shù)器加1{if(p[i].flog==in&&p[i].num!=t)p[i].count++;}printf("頁面%d被調(diào)入內(nèi)存\n",t);}voidport(pagep[])//調(diào)出頁面的函數(shù),,,,,,,,,,,,,,,,,,,,,,如果函數(shù)名定義為export則處錯誤{intx=0,y;//x用來暫時存放計(jì)數(shù)器中的最大值,y存放此頁面的頁面號for(inti=0;i<5;i++)//尋找計(jì)數(shù)器值最大的頁面{if(p[i].count>x){x=p[i].count;y=i;}}p[y].flog=out;//修改調(diào)入符號p[y].count=0;capacity++;//調(diào)入后內(nèi)存空間增加一葉printf("\t\t\t頁面%d被調(diào)出內(nèi)存\n",y);}main(){ints;longt3,t1,t2;pagepag[5];//定義五個頁面,,,,,,,,,,,,,,,,,,,,,如果這個定義在子函數(shù)之前那么不用通過參數(shù)子函數(shù)便可以直接訪問t3=time(NULL);initialize(pag);do{t1=time(NULL);s=use(pag);//,,,,,,,,,,,,,,,,,,,,,,,,,,,如果這里寫成ints=use(pag)則會運(yùn)行出錯//printf("s=%dcapacity=%d\n",s,capacity);if(capacity>0&&s==0)import(pag);else{if(capacity==0&&s==0){port(pag);import(pag);}}t2=time(NULL);while(t2-t1<1){t2=time(NULL);}}while(t2-t3<20);system("pause");} 五,測試結(jié)果:LFU算法一,實(shí)驗(yàn)內(nèi)容:編寫一段程序來模擬頁面置換算法中的LFU算法的實(shí)現(xiàn)二,算法設(shè)計(jì):設(shè)置一個產(chǎn)生隨機(jī)數(shù)的函數(shù)rand()產(chǎn)生隨機(jī)數(shù)來模擬程序所需訪問的頁面的標(biāo)號,如果頁面需要被訪問則把頁面中的一個標(biāo)志位設(shè)為in表示他已經(jīng)被調(diào)入內(nèi)存,如果再次需要訪問此頁面是只需檢查此頁面的標(biāo)志位是否為in就可判斷它是否已經(jīng)存在在內(nèi)存中了,如果已經(jīng)存在則可直接使用,如果不存在則需調(diào)入,在調(diào)入新頁面是先檢查內(nèi)存空間是否已滿,如果未滿則直接調(diào)入,如果已經(jīng)滿了則需選擇一個頁面將其調(diào)出,調(diào)出時就把頁面的標(biāo)志位設(shè)為out。選擇頁面的規(guī)則是:將最近一段時間未被訪問過的頁面調(diào)出。為了達(dá)到這一目的在頁面中設(shè)置一個標(biāo)志位,如果頁面在近期只要被訪問過則將該標(biāo)志位設(shè)置為1(默認(rèn)為0),在選擇調(diào)出頁面時只需將標(biāo)志位為0的頁面調(diào)出即可。三,遇到的問題及解決方案:未遇到什么問題四,實(shí)驗(yàn)感悟:遇到問題后上網(wǎng)查資料和有效,及時查不到自己想要的但是也可從相關(guān)結(jié)果中獲得啟發(fā)給自己靈感來想到解決問題的方法.源代碼FLU.cpp#include<stdio.h>#include<stdlib.h>#include<time.h>#include"頭文件.cpp"intcapacity=3;//設(shè)置內(nèi)存最多可以容納的頁面數(shù)voidinitialize(pagep[])//初始化頁面函數(shù){for(inti=0;i<5;i++)//初始化頁面,頁面內(nèi)容分別為小寫字母abcde,計(jì)數(shù)器全部為0{p[i].num=i;p[i].content=i+97;p[i].flog=out;p[i].count=0;p[i].usebit=0;}}intuse(pagep[]){t=rand()%5;//產(chǎn)生一個0-5的隨機(jī)數(shù),if(p[t].flog==in){printf("\t\t%d頁面命中\(zhòng)n",t);p[t].usebit=1;//for(inti=0;i<5;i++)//調(diào)入此頁面后其他以在內(nèi)存中存在的頁面計(jì)數(shù)器加1//{//if(p[i].flog==in)//p[i].count++;//}return(1);}elsereturn(0);}voidimport(pagep[])//調(diào)入頁面的函數(shù){intt=rand()%5;//產(chǎn)生一個0-5的隨機(jī)數(shù),//if(p[t].flog==in)//{//printf("\t\t%d頁面命中\(zhòng)n",t);//p[t].usebit=1;//}//if(p[t].flog==out)//如果此頁面未被調(diào)入內(nèi)存則立即調(diào)入p[t].flog=in;capacity--;//調(diào)入后內(nèi)存空間減少一葉for(inti=0;i<5;i++)//調(diào)入此頁面后其他以在內(nèi)存中存在的頁面計(jì)數(shù)器加1{if(p[i].flog==in&&p[i].num!=t)p[i].count++;}printf("頁面%d被調(diào)入內(nèi)存\n",t);}voidport(pagep[])//調(diào)出頁面的函數(shù)////////////////////////////////如果函數(shù)名定義為export則處錯誤{intx=0,y;//x用來暫時存放計(jì)數(shù)器中的最大值,y存放此頁面的頁面號intz=-1;//用來判斷近期是否有未被訪問過的頁面intg=0;for(inti=0;i<5;i++)//尋找計(jì)數(shù)器值最大的頁面{if(p[i].count>x){x=p[i].count;y=i;}}for(inti=0;i<5;i++){if(p[i].flog==in&&p[i].usebit==0){z=i;g++;}}if(z==-1||g==3)//如果所有頁面均為1則按照FIFO算法置換頁面//如果g=3則表明頁面使用位全為零,此時也按照FIFO算法置換頁面{p[y].flog=out;//修改調(diào)入符號p[y].count=0;capacity++;//調(diào)入后內(nèi)存空間增加一葉p[y].usebit=0;for(inti=0;i<5;i++)//將所有頁面置0p[i].usebit=0;printf("\t\t\t頁面%d被調(diào)出內(nèi)存\n",y);}else//如果有頁面為0則將此頁面置換出來{p[z].flog=out;//修改調(diào)入符號p[z].count=0;capacity++;//調(diào)入后內(nèi)存空間增加一葉pri
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省清遠(yuǎn)市2022-2023學(xué)年高三上學(xué)期期末教學(xué)質(zhì)量檢測英語試題
- 旅行社后勤管理工作概述
- 健身行業(yè)教練技能提升總結(jié)
- 餐飲行業(yè)市場推廣總結(jié)
- 服裝行業(yè)設(shè)計(jì)師工作經(jīng)驗(yàn)分享
- 皮革行業(yè)助理的工作概括
- 兒童用品行業(yè)營業(yè)員工作總結(jié)
- 證券公司前臺工作總結(jié)
- 銀行業(yè)務(wù)培訓(xùn)總結(jié)
- 《漫話探險(xiǎn)》課件
- DB63T 2376-2024 餐飲單位有害生物防治技術(shù)指南
- 中考語文名著《西游記》專項(xiàng)復(fù)習(xí):《三調(diào)芭蕉扇》
- 2025新年春節(jié)專用對聯(lián)蛇年春聯(lián)帶橫批
- 【MOOC】融合新聞:通往未來新聞之路-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 2024年世界職業(yè)院校技能大賽中職組“工程測量組”賽項(xiàng)考試題庫(含答案)
- 半結(jié)構(gòu)化面試題100題
- 靜脈治療小組管理
- 服裝廠班組長培訓(xùn)
- 浙江省杭州二中2025屆物理高三第一學(xué)期期末聯(lián)考試題含解析
- 帶貨主播年終總結(jié)匯報(bào)
- 《激光原理及應(yīng)用》全套課件
評論
0/150
提交評論