页面置换算法

上传人:cl****1 文档编号:431612403 上传时间:2022-09-17 格式:DOCX 页数:11 大小:160.36KB
返回 下载 相关 举报
页面置换算法_第1页
第1页 / 共11页
页面置换算法_第2页
第2页 / 共11页
页面置换算法_第3页
第3页 / 共11页
页面置换算法_第4页
第4页 / 共11页
页面置换算法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《页面置换算法》由会员分享,可在线阅读,更多相关《页面置换算法(11页珍藏版)》请在金锄头文库上搜索。

1、页面置换算法实验报告实验目的和要求1、了解内存分页管理策略,掌握 3 种调度页面的算法2、 分别采用 3种页面调度方式实现调度,显示调度结果并计算缺页次数与缺页率 编写程序 完成实验内容及实验报告实验内容、方法和步骤1、设计结构体存放页面调度顺序串及内存块2、 分别模拟FIFO置换调度算法、LRU置换调度算法以及OPT置换调度算法进行页面调 度分别打印输出 3种置换算法调度后的内存块状态结果,在缺页的列对应输出缺页标志,计算缺页次数及缺页率 主要流程:始输入1调度算法选押输入3输入2结束图1主流程图初始化内存块数组与页面访问串数组FIFOS换算法OPTH换算医LRU富换算法FIFO置换调度算法

2、流程 图:开始将内存块数纽当前列分别赋值为上一列元素是输出内存块调度结杲图2 FIFO置换调度算法流程图LRU谊换调度算法流程图:开始L将内存块数组当前列分别赋 值为匕列元素,time加1缺页,找到内存块数驾 中最先进入的页面将该页面号赋俏为当前需调入内存的页 面号,缺页数加1,缺页*标记置1不缺页,time值审置为1iId结束图3 LRU置换算法流程图opt n换调度算法流程图节间上由M内存否中最先进入的页面缺贝,找到内行:块数纠块中是否存在?将该页面号.赋值为当前需调人内存的页 面号,缺页数加1,缺页”标记鷲1|开始将内存块数组当前列分别赋值为上一列元索,time in 1输岀内存块调度结

3、果图4 OPT置换调度算法流程图实验代码#in clude using n amespace std;void Print(int bc,int blockCount) for(i nt i=0;iblockCo un t;i+) coutbci; coute ndl; bool Travel(i nt bc,i nt blockCo un t,i nt x)bool is_foun d=false; int i;for(i=0;iblockCou nt;i+) if(bci=x) is_fo un d=true;break; return is_found;void FIFO(int pc,

4、int bc,int pageCount,int blockCount) coutvv0 : FIFO 置换算法vvendl;int i;if(pageCo un tv=blockCo unt)coutvv缺页次数为vvOvvendl; coutvv缺页率为 vv0vvendl;elseint noPage=0;int p=0; for(i=0;ivpageCount;i+)cout 引用页: pciendl; if(!Travel(bc,blockCount,pci) if(iblockCount)bci=pci;else if(p=blockCount) p=0;bcp=pci; p+;

5、noPage+;cout 物理快情况: ; Print(bc,blockCount); coutendl;cout 缺页次数为 :noPageendl;cout 缺页率为 :(float)noPage/pageCountendl; int FoundMaxNum(int a,int n)int k,j;k=a0;j=0;for (int i=0;i=k)k=ai; j=i;return j;void LRU(int pc,int bc,int pageCount,int blockCount)cout1 :LRU 置换算法 endl;if(pageCount=blockCount)cout 缺

6、页次数为 0endl;cout 缺页率为 0endl;elseint noPage=0;int i,j,m;int *bc1=new intblockCount;for(i=0;iblockCount;i+)bc1i=0;for(i=0;ipageCount;i+)cout 引用页: pciendl;if(!Travel(bc,blockCount,pci) if(iblockCount) bci=pci;for(int p=0;p=i;p+)bc1p+;elsefor(j=0;jblockCount;j+)bc1j+;int k=FoundMaxNum(bc1,blockCount); bc

7、k=pci; bc1k=1; noPage+; cout 物理快情况: ; Print(bc,blockCount);else if(Travel(bc,blockCount,pci) if(iblockCount)for(j=0;j=i;j+)bc1j+;for(m=0;m=i;m+)if(bcm=pci) break; bc1m=1; bcm=pci;elsefor(j=0;jblockCount;j+)bc1j+; for(m=0;mblockCount;m+)if(bcm=pci)break;bc1m=1; bcm=pci;coutendl;cout 缺页次数为 :noPageendl

8、;cout 缺页率为 :(float)noPage/pageCountendl;delete bc1;void Optiomal(int pc,int bc,int pageCount,int blockCount)cout2 :最佳置换算法 endl;if(pageCount=blockCount)cout 缺页次数为 0endl;cout 缺页率为 0endl;elseint noPage=0;int i,j,k;for(i=0;ipageCount;i+)cout 引用页: pciendl; if(!Travel(bc,blockCount,pci)if(iblockCount)bci=

9、pci;elseint max=0;int blockIndex; for(j=0;jblockCount;j+)for(k=i;k=max)max=k;blockIndex=j; bcblockIndex=pci; noPage+;cout 物理快情况: ;Print(bc,blockCount); coutendl;cout 缺页次数为 :noPageendl; cout 缺页率为 :(float)noPage/pageCountendl;void NRU(int pc,int bc,int pageCount,int blockCount) cout3 : Clock 置换算法 endl

10、;if(pageCount=blockCount)cout 缺页次数为 0endl;cout 缺页率为 0endl;elseint noPage=0;int i,j;int *bc1=new intblockCount; for(i=0;iblockCount;i+)bc1i=0; for(i=0;ipageCount;i+)cout 引用页: pciendl;if(!Travel(bc,blockCount,pci) for(j=0;jblockCount;j+) if(bc1j=1) bc1j=0;else if(bc1j=0)break;if(j=blockCount-1)j=-1;bc

11、j=pci;bc1j=1;noPage+;cout 物理快情况: ;Print(bc,blockCount);coutendl;cout 缺页次数为 :noPageendl;cout 缺页率为 :(float)noPage/pageCountendl;delete bc1;int main()int pageCount,blockCount,i;cout 输入页面数 pageCount;int *pc=new intpageCount;cout 输入页面走向 endl;for(i=0;ipci;cout 输入物理块数 blockCount;coutvv0 : FIFO 置换算法vvendl;coutvv1 : LRU 置换算法vvendl;coutvv2 :最佳置换算法 vvendl;coutvv3 : Clock 置换算法vvendl;coutvv按数字选择算法类别:vve ndl;int n;while(cinn)if(n=0)int *bc=new intblockCount;FIFO(pc,bc,pageCount,blockCount); delete bc;else if(n=1)int *bc=new intblockCount;LRU(pc,bc,pageCount,blockCou

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号