計(jì)算機(jī)操作系統(tǒng)儲存管理實(shí)驗(yàn)報(bào)告_第1頁
計(jì)算機(jī)操作系統(tǒng)儲存管理實(shí)驗(yàn)報(bào)告_第2頁
計(jì)算機(jī)操作系統(tǒng)儲存管理實(shí)驗(yàn)報(bào)告_第3頁
計(jì)算機(jī)操作系統(tǒng)儲存管理實(shí)驗(yàn)報(bào)告_第4頁
計(jì)算機(jī)操作系統(tǒng)儲存管理實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

v1.0可編輯可修改v1.0可編輯可修改河南師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院軟件學(xué)院綜合性、設(shè)計(jì)性實(shí)驗(yàn)報(bào)告專業(yè):java 年級/班級:2012級2013—2014學(xué)年第一學(xué)期課程名稱計(jì)算機(jī)操作系統(tǒng)指導(dǎo)教師學(xué)號-姓名王宇菲實(shí)驗(yàn)地點(diǎn)過街樓B區(qū)實(shí)驗(yàn)時(shí)間2014-12-23項(xiàng)目名稱儲存管理實(shí)驗(yàn)類型綜合性/設(shè)計(jì)性實(shí)驗(yàn)?zāi)康耐ㄟ^請求頁式存儲管理中頁面置換算法模擬程序, 了解虛擬存儲技術(shù)的特點(diǎn),掌握請求頁式存儲管理的頁面置換算法。實(shí)驗(yàn)儀器或設(shè)備實(shí)驗(yàn)機(jī)房pc電腦總體設(shè)計(jì)(設(shè)計(jì)原理、設(shè)計(jì)方案及流程等)1.通過隨機(jī)數(shù)產(chǎn)生一個(gè)指令序列,共 320條指令,指令的地址按下述原則生產(chǎn):50 %的指令是順序執(zhí)行的;25%的指令是均勻分布在前地址部分;25%的指令是均勻分布在后地址部分。2.將指令序列變換成為頁地址流設(shè)頁面大小為1K;用戶內(nèi)存容量為4頁到32頁;用戶虛存容量為32K。在用戶虛存中,按每K存放10條指令排列虛存地址,即320條指令在虛存中的存放方式為:第0條至第9條指令為第0頁;第10條至19條指令為第1頁;…第310條至319條指令為第31頁。3.計(jì)算并輸出下述各種算法在不同內(nèi)存容量下的命中率。先進(jìn)先出算法(FIFO)最近最少使用算法(LRU最佳使用算(OPT命中率=1-頁面失效次數(shù)/頁地址流長度本實(shí)驗(yàn)中,頁地址流長度為320,頁面失效次數(shù)為每次訪問相應(yīng)指令時(shí), 該指令所對應(yīng)的頁不在內(nèi)存的次數(shù)。關(guān)于隨機(jī)數(shù)的產(chǎn)生辦法。 首先要初始化設(shè)置隨機(jī)數(shù),產(chǎn)生序列的開始點(diǎn),例如,通過下列語句實(shí)現(xiàn):srand(400) ;計(jì)算隨機(jī)數(shù),產(chǎn)生320條指令序列m=160;for(i=0;i<80;i++={j=i*4;a[j]=m;a[j+1] =m+1;a[j+2] =a[j]* *rand()/32767 ;a[j+3] =a[j+2]+1m=a[j+3]+(319-a[j+3]) **rand()/32767 ;}將指令序列變換成為頁地址流for(k=0;k<320;k++){pt=a[k]/10;pd=a[k]%10 ;}計(jì)算不同算法的命中率rate=*U/320;其中U為缺頁中斷次數(shù),320是頁地址流長度。輸出格式kfifo1ru4…32四、實(shí)驗(yàn)步驟(包括主要步驟、代碼分析等).代碼如下#include<>#include<>#include<>#include<>#define Myprintfprintf("|—+—+—+—+—+—+—+—+—+—+—+—+—+—+—+—+—|\n")/*表格控制*/#definebsize4 um=-1;b[i].time=psize-i-1;}for(i=0;i<bsize;i++)for(j=0;j<psize;j++)c皿]=-1;}/*取得在內(nèi)存中停留最久的頁面 ,默認(rèn)狀態(tài)下為最早調(diào)入的頁面 */intGetMax(Page*b){inti;intmax=-1;inttag=0;for(i=0;i<bsize;i++){if(b[i].time>max){max=b[i].time;tag=i;}}returntag;}/*判斷頁面是否已在內(nèi)存中*/intEquation(intfold,Page*b){inti;for(i=0;i<bsize;i++){if(fold==b[i].num)returni;}return-1;}/*LRU核心部分*/voidLruu(intfold,Page*b){inti;intval;val=Equation(fold,b);if(val>=0){b[val].time=0;for(i=0;i<bsize;i++)if(i!=val)b[i].time++;}else{記錄調(diào)入頁面*/queue[++K]=fold;/*val=GetMax(b);b[val].num=fold;記錄調(diào)入頁面*/b[val].time=0;for(i=0;i<bsize;i++)if(i!=val)b[i].time++;}}voidLRU(){inti,j;K=-1;Init(b,c);for(i=0;i<psize;i++){Lruu(pro[i],b);*/c[0][i]=pro[i];*//* 記錄當(dāng)前的內(nèi)存單元中的頁面for(j=0;j<bsize;j++)c皿i]=b[j].num;}/* 結(jié)果輸出*/printf("內(nèi)存狀態(tài)為:\n");Myprintf;for(j=0;j<psize;j++)printf("|%2d",pro[j]);printf("|\n");Myprintf;for(i=0;i<bsize;i++){for(j=0;j<psize;j++){if(c皿]==-1)printf("|%2c",32);elseprintf("|%2d",c[i][j]);}printf("|\n");}Myprintf;printf("\n調(diào)入隊(duì)列為:");for(i=0;i<K+1;i++)printf("%3d",queue[i]);printf("\n缺頁次數(shù)為: %6d\n缺頁率:%”,K+1,(float)(K+1)/psize);主函數(shù)〃**************************************************************〃主函數(shù)voidmain(){intsel;do{printf("\t\t\t \t\t\t");printf("\t\t\t☆☆A(yù)-A歡迎進(jìn)入操作系統(tǒng)界面 A-A☆☆\t\t\t");printf("\t\t\t \t\t\t\n");printf("\t\t\t ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ \t\t\t");printf("\t\t\t☆ 虛擬內(nèi)存 ☆\t\t\t");printf("\t\t\t ☆ ☆?'%");printf("\t\t\t ☆ 1 、產(chǎn)生隨機(jī)序列 ☆ \t\t\t");printf("\t\t\t ☆ ☆?'%");printf("\t\t\t ☆ 2 、最久未使用(LRU) ☆ \t\t\t");printf("\t\t\t ☆ ☆?'%");printf("\t\t\t ☆ 3 、先進(jìn)先出(FIFO) ☆ \t\t\t");printf("\t\t\t ☆ ☆?'%");printf("\t\t\t ☆ 4 、最佳置換算法(OPT) ☆ \t\t\t");printf("\t\t\t ☆ ☆?'%");printf("\t\t\t ☆ 5 、三種算法的比較() ☆ \t\t\t");printf("\t\t\t ☆ ☆?'%");printf("\t\t\t ☆ 0 、退出(Exit) ☆ \t\t\t");printf("\t\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ \t\t\t\n");printf(" 請選擇所要執(zhí)行的操作(0/1/2/3/4/5):");scanf("%d",&sel);switch(sel)case0:printf("\t\t\tA-A再見!Acase0:printf("\t\t\tA-Acase1:build();break;case2:printf("最久未使用算\n");LRU();empty();printf("\n");break;case3:printf("先進(jìn)先出算\n");FIFO();empty();printf("\n");break;case1:build();break;case2:printf("最久未使用算\n");LRU();empty();printf("\n");break;case3:printf("先進(jìn)先出算\n");FIFO();empty();printf("\n");break;case5:printf("先進(jìn)先出算法\n");FIFO();empty();printf(" 最久未使用算法printf(" 最久未使用算法\n");LRU();empty();break;default:printf("請輸入正確的選項(xiàng)號! ");printf("\n\n");break;}while(sel!=0);五、結(jié)果分析與總結(jié)產(chǎn)生的隨機(jī)序列:隨default:printf("請輸入正確的選項(xiàng)號! ");printf("\n\n");break;}while(sel!=0);五、結(jié)果分析與總結(jié)產(chǎn)生的隨機(jī)序列:隨機(jī)產(chǎn)生二不進(jìn)程序列號為:1629654y98298641最近最少使用算法執(zhí)行結(jié)果如下:先進(jìn)先出FIFO算法執(zhí)行結(jié)果:總結(jié)體會請求頁式管理的基本原理是將邏輯地址空間分成大小相同的頁, 將存儲地址空間分塊,頁和塊的大小相等,通過頁表進(jìn)行管理。頁式系統(tǒng)的邏輯地址分為頁號和頁內(nèi)位移量。頁表包括頁號和塊號數(shù)據(jù)項(xiàng),它們一一對應(yīng)。 根據(jù)邏輯空間的頁號,查找頁表對應(yīng)項(xiàng)找到對應(yīng)的塊號,塊號乘以塊長,加上位移量就行成存儲空間的物理地址。 每個(gè)作業(yè)的邏輯地址空間是連續(xù)的,重定位到內(nèi)存空間后就不一定連續(xù)了。對不同算法的性能進(jìn)行評價(jià)。FIFO算法較易實(shí)現(xiàn),

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論