




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、實(shí)驗(yàn)四請求分頁存儲管理模擬實(shí)驗(yàn)一:實(shí)驗(yàn)?zāi)康耐ㄟ^對頁面、頁表、地址轉(zhuǎn)換和頁面置換過程的模擬,加深對請求分頁存儲管理系統(tǒng)的原理和實(shí)現(xiàn)技術(shù)的理解。二:實(shí)驗(yàn)內(nèi)容假設(shè)每個(gè)頁面可以存放10條指令,分配給進(jìn)程的存儲塊數(shù)為4。用C語言或Pascal語言模擬一進(jìn)程的執(zhí)行過程。設(shè)該進(jìn)程共有320條指令,地址空間為32個(gè)頁面,運(yùn)行前所有頁面均沒有調(diào)入內(nèi)存。模擬運(yùn)行時(shí),如果所訪問的指令已經(jīng)在內(nèi)存,則顯示其物理地址,并轉(zhuǎn)下一條指令;如果所訪問的指令還未裝入內(nèi)存,則發(fā)生缺頁,此時(shí)需要記錄缺頁產(chǎn)生次數(shù),并將相應(yīng)頁面調(diào)入內(nèi)存,如果4個(gè)內(nèi)存塊已滿,則需要進(jìn)行頁面置換。最后顯示其物理地址,并轉(zhuǎn)下一條指令。在所有指令執(zhí)行完畢后,顯
2、示進(jìn)程運(yùn)行過程中的缺頁次數(shù)和缺頁率。頁面置換算法:分別采用OPT、FIFO、LRU三種算法。進(jìn)程中的指令訪問次序按如下原則生成:50%的指令是順序執(zhí)行的。25%的指令是均勻分布在低地址部分。25%的指令是均勻分布在高地址部分。三:實(shí)驗(yàn)類別分頁存儲管理四:實(shí)驗(yàn)類型模擬實(shí)驗(yàn)五:主要儀器計(jì)算機(jī)六:結(jié)果OPT:LRU:FIFO:七:程序# include<stdio.h># include<stdlib.h># include<conio.h># define blocknum 4/頁面尺寸大小int m; /程序計(jì)數(shù)器,用來記錄按次序執(zhí)行的指令對應(yīng)的頁號stati
3、c int num320; /用來存儲320條指令typedef struct BLOCK /聲明一種新類型-物理塊類型 int pagenum; /頁號int accessed; /訪問量,其值表示多久未被訪問BLOCK; BLOCK blockblocknum; /定義一大小為8的物理塊數(shù)組void init() /程序初始化函數(shù),對block初始化 for(int i=0;i<blocknum;i+) blocki.pagenum=-1;blocki.accessed=0;m=0;int pageExist(int curpage)/查找物理塊中頁面是否存在,尋找該頁面curpag
4、e是否在內(nèi)存塊block中,若在,返回塊號for(int i=0; i<blocknum; i+) if(blocki.pagenum = curpage )return i; /在內(nèi)存塊block中,返回塊號return -1;int findSpace()/查找是否有空閑物理塊,尋找空閑塊block,返回其塊號for(int i=0;i<blocknum;i+) if(blocki.pagenum=-1)return i; /找到了空閑的block,返回塊號 return -1;int findReplace()/查找應(yīng)予置換的頁面 int pos = 0;for(int i=
5、0;i<blocknum;i+) if(blocki.accessed > blockpos.accessed)pos = i; /找到應(yīng)該置換頁面,返回BLOCK中位置 return pos;void display()/顯示物理塊中的頁面號 for(int i=0; i<blocknum; i+) if(blocki.pagenum != -1)printf(" %02d ",blocki.pagenum);printf("%p |",&blocki.pagenum);printf("n");void r
6、andam()/產(chǎn)生320條隨機(jī)數(shù),顯示并存儲到num320 int flag=0;printf("請為一進(jìn)程輸入起始執(zhí)行指令的序號(0320):n");scanf("%d",&m);/用戶決定的起始執(zhí)行指令printf("*進(jìn)程中指令訪問次序如下:(由隨機(jī)數(shù)產(chǎn)生)*n");for(int i=0;i<320;i+)/進(jìn)程中的320條指令訪問次序的生成numi=m;/當(dāng)前執(zhí)行的指令數(shù),if(flag%2=0) m=+m%320;/順序執(zhí)行下一條指令if(flag=1) m=rand()%(m-1);/通過隨機(jī)數(shù),跳轉(zhuǎn)到低
7、地址部分0,m-1的一條指令處,設(shè)其序號為m1if(flag=3) m=m+1+(rand()%(320-(m+1);/通過隨機(jī)數(shù),跳轉(zhuǎn)到高地址部分m1+2,319的一條指令處,設(shè)其序號為m2flag=+flag%4;printf(" %03d",numi);/輸出格式:3位數(shù)if(i+1)%10=0) /控制換行,每個(gè)頁面可以存放10條指令,共32個(gè)頁面printf("n"); void pagestring() /顯示調(diào)用的頁面序列,求出此進(jìn)程按次序執(zhí)行的各指令所在的頁面號并顯示輸出 for(int i=0;i<320;i+)printf(&q
8、uot; %02d",numi/10);/輸出格式:2位數(shù)if(i+1)%10=0)/控制換行,每個(gè)頁面可以存放10條指令,共32個(gè)頁面printf("n");void OPT() /最佳替換算法 int n=0;/記錄缺頁次數(shù)int exist,space,position;int curpage;/當(dāng)前指令的頁面號for(int i=0;i<320;i+) m=numi; curpage=m/10;exist=pageExist(curpage);if(exist=-1) /當(dāng)前指令的頁面號不在物理塊中space=findSpace();if(space
9、 != -1) /當(dāng)前存在空閑的物理塊blockspace.pagenum = curpage; /將此頁面調(diào)入內(nèi)存display();/顯示物理塊中的頁面號n+;/缺頁次數(shù)+1else /當(dāng)前不存在空閑的物理塊,需要進(jìn)行頁面置換for(int k=0;k<blocknum;k+)for(int j=i;j<320;j+)/找到在最長(未來)時(shí)間內(nèi)不再被訪問的頁面if(blockk.pagenum!= numj/10) blockk.accessed = 1000; /將來不會被訪問,設(shè)置為一個(gè)很大數(shù)else /將來會被訪問,訪問量設(shè)為jblockk.accessed = j;br
10、eak; position = findReplace();/找到被置換的頁面 ,淘汰blockposition.pagenum = curpage;/ 將新頁面調(diào)入display();n+; /缺頁次數(shù)+1printf("缺頁次數(shù):%dn",n);printf("缺頁率:%f%n",(n/320.0)*100);void LRU() /最近最久未使用算法 int n=0;/記錄缺頁次數(shù)int exist,space,position ;int curpage;/當(dāng)前指令的頁面號for(int i=0;i<320;i+) m=numi; curpa
11、ge=m/10;exist = pageExist(curpage);if(exist=-1) /當(dāng)前指令的頁面號不在物理塊中space = findSpace();if(space != -1) /當(dāng)前存在空閑的物理塊blockspace.pagenum = curpage; /將此頁面調(diào)入內(nèi)存display();/顯示物理塊中的頁面號n+;/缺頁次數(shù)+1else /當(dāng)前不存在空閑的物理塊,需要進(jìn)行頁面置換position = findReplace(); blockposition.pagenum = curpage; display();n+; /缺頁次數(shù)+1else blockexis
12、t.accessed = -1;/恢復(fù)存在的并剛訪問過的BLOCK中頁面accessed為-1for(int j=0; j<blocknum; j+)/其余的accessed+blockj.accessed+;printf("缺頁次數(shù):%dn",n);printf("缺頁率:%f%n",(n/320.0)*100);void FIFO() int n=0;/記錄缺頁次數(shù) int exist,space,position ; int curpage;/當(dāng)前指令的頁面號 int blockpointer=-1; for(int i=0;i<320
13、;i+) m=numi; curpage=m/10; exist = pageExist(curpage); if(exist=-1) /當(dāng)前指令的頁面號不在物理塊中 space = findSpace(); if(space != -1) /當(dāng)前存在空閑的物理塊 blockpointer+; blockspace.pagenum=curpage; /將此頁面調(diào)入內(nèi)存 n+;/缺頁次數(shù)+1 display();/顯示物理塊中的頁面號 else / 沒有空閑物理塊,進(jìn)行置換 position = (+blockpointer)%4; blockposition.pagenum = curpage
14、; /將此頁面調(diào)入內(nèi)存 n+; display(); printf("缺頁次數(shù):%dn",n); printf("缺頁率:%f%n",(n/320.0)*100); void main() int choice;printf("*請求分頁存儲管理模擬系統(tǒng)*n");randam();printf("*此進(jìn)程的頁面調(diào)用序列如下*n");pagestring();while(choice != 4) printf("*1:OPT 2:LRU 3:FIFO 4:退出*n");printf("請選擇一種頁面置換算法:"); scanf("%d",&choice);init();switch(choice) case 1:printf("最佳置換算法OPT:n");printf("頁面號 物理地址 頁面號 物理地址 頁面號 物理地址 頁面號 物理地址n");OPT();b
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- xx工程項(xiàng)目旬報(bào)(項(xiàng)目進(jìn)展情況報(bào)告)
- 1 學(xué)會尊重 第一課時(shí) 教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治六年級下冊統(tǒng)編版
- 智慧排水管理系統(tǒng)方案可行性研究報(bào)告
- 曲靖市花椒加工項(xiàng)目可行性研究報(bào)告
- 【可行性報(bào)告】2025年彩妝化妝品項(xiàng)目可行性研究分析報(bào)告
- 2025年度個(gè)人租賃合同范本:租賃合同中的租金支付方式
- 2024-2030年中國導(dǎo)熱硅脂行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 三維固土網(wǎng)墊項(xiàng)目投資可行性研究分析報(bào)告(2024-2030版)
- 設(shè)備轉(zhuǎn)售合同范本
- 2025年度高端醫(yī)療器械銷售代理合同范本-@-1
- 居民自建樁安裝告知書回執(zhí)
- 個(gè)人所得稅專項(xiàng)附加扣除及個(gè)人所得稅計(jì)算培訓(xùn)
- 名詞 名詞的定義分類(70張)
- 2023北師大版小學(xué)數(shù)學(xué)六年級下冊教材分析
- 項(xiàng)目經(jīng)理個(gè)人先進(jìn)事跡材料(4篇)
- 雪佛蘭邁銳寶保養(yǎng)手冊
- 墨點(diǎn)美術(shù):芥子園畫譜
- 停車場道路施工方案
- (21)-9.1《藝術(shù)學(xué)概論》第九章第一節(jié) 藝術(shù)批評的含義與性質(zhì)、原
- 北師大版五年級數(shù)學(xué)上冊《分?jǐn)?shù)的再認(rèn)識》評課稿
- 微生物檢驗(yàn)-真菌教學(xué)課件
評論
0/150
提交評論