




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
存储管理模拟程序1. 设计目的存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。2. 设计内容(1)通过输入或由程序产生程序执行时的页号序列,共32个页号。页号序列按下述原则生成:页号序列应具有一定随机性。(如:50%的顺序访问);(2)计算并输出下述各种算法在不同内存容量(432内存页面)下的命中率。先进先出的算法(FIFO)最近最少使用算法(LRU)最佳淘汰算法(OPT):先淘汰最不常用的页地址最少访问页面算法(LFR)其中和为选择内容命中率 = 1 - (页面失效次数/页地址流长度)3.程序设计:本程序首先用rand()函数定义和产生地址流序列,并针对不同的算法计算出相应的命中率。I 根据实验内容将函数分成五个模块:1主程序模块,主要包括页面结构数组及页面控制结构定义,将指令流转换成页地址流 2 三个置换算法程序模块:FIFO算法模块,LRU算法模块,OPT算法模块,LFU算法模块 II 总程序模块流程图如下:4.源程序如下:#include #include#define maxsize 32#include define vpf 200void FIFO(int a);void LRU(int a);void OPT(int a);void LFU(int a);int countmaxsize;/int bpf;int avpf;void main() / 定义主函数。for(int i=0;i200;i+) /用随机数产生页地址流 ai=rand()%32;FIFO(a);LFU(a);OPT(a);LRU(a);void LFU(int a) /LFU算法for(int n=4;n33;n+) /不同的页面数计算命中率 int num=0; int same=0; int min; int minpage=0; int dis=0; int i=0; int k=0; int sum=n; /空白页面数 int num2=2; /设置清零时间间隔 int bmaxsize; for (k=0;kn;k+) /页面数组,计数数组初始化 bk=-1; countk=0; for (i=0;ivpf;i+) num=0; for (k=0;kn;k+) /测试是否命中 if(ai=bk) same=k; num+; if(num!=0) /命中页面计数器加1 countsame+; else dis+; /未命中,缺页次数加1 if(sum=0) /无空白页面 min=201; for(k=0;kcountk) min=countk; minpage=k; bminpage=ai; if(num2=0) /每两次缺页计数器清零for(k=0;kn;k+)countk=0;num2=3;countminpage=1; num2-; /countminpage=0; else /有空白页面 bn-sum=ai;if(num2=0) /每两次缺页计数器清零for(k=0;kn;k+)countk=0;num2=3;num2-; countn-sum=1;sum-; printf(%d,n); printf( page frames LFU:%3d,dis); printf( LFU:%6.4fn,1-(float)dis/32); void OPT(int a) /OPT算法 for(int n=4;n33;n+) /不同的页面数计算命中率int num1=0,num2=0,num3=0,num4=0; int d; int dis=0; int bmaxsize; int sum=n; int max; int maxpage; int distvpf; for(int i=0;ivpf;i+) num1=0; for(int j=0;jn;j+) /测试是否命中 if(ai=bj) num1+;if(num1=0) /未命中 dis+; /缺页次数加1 if (sum!=0) /有空白页面时 bn-sum=ai;sum-; else /无空白页面 for(int k=0;kvpf;k+)/初始化页地址离当前页地址的距离 distak=0; for (k=0;kvpf;k+) num2=0; for(j=0;jn;j+) if(bj=ak) /测试未来页地址是否在内存 num2+; if(num2!=0) distak=201; /在内存的页地址的距离赋予最大值。 else distak=0; 不在内存的页地址的距离先全赋予0。 d=1; for( k=i+1;kvpf;k+) /测试未来的地址流是否在当前的内存。 num3=0; for(int j=0;jn;j+) if (ak=bj) num3+; if (num3!=0) /未来的某些地址在当前在内存 num4=0; for(int l=i+1;lk;l+) 测试未来的地址流的是否有相同的。 if (ak=al) num4+; if(num4=0)若不同则将其距离赋予相应的值,越在后面其距离值越大 distak=d; d+; max=-1; maxpage=0; for(int c=0;cvpf;c+) 找出距离最大的页号 if(maxdistac) max=distac; maxpage=ac; for(j=0;jn;j+) /找出在内存中距离与最大距离相等的页号并替换掉 if(bj=maxpage) bj=ai; printf(%d,n); printf( page frames OPT:%d ,dis); printf( OPT:%6.4fn,1-(float)dis/32);void FIFO(int a) FIFO算法for(int n=4;n33;n+) /不同的页面数计算命中率 int num; int max; int maxpage=0; int dis=0; int i=0; int k=0; int sum=n; int bmaxsize; for (k=0;kn;k+) /页面数组,计数数组初始化 bk=-1; countk=0; for (i=0;ivpf;i+) num=0; for (k=0;kn;k+) /测试是否命中 if(ai=bk) num+; if(num=0) /未命中 dis+; for(k=0;kn;k+) /所有页面计数器加一 countk+; if(sum=0) /没空白页面时 max=0; for(k=0;kn;k+) if(maxcountk) /找出计数器值最大的替换 max=countk; maxpage=k; bmaxpage=ai; countmaxpage=0; /被替换页面计数器清零 else bn-sum=ai;countn-sum=0; /有空白页面时,将所缺页放入空白页面,sum-; 并将该页面计数器清零 printf(%d,n); printf( page frames FIFO:%3d,dis); printf( FIFO:%6.4fn,1-(float)dis/32);void LRU(int a) /LRU算法for(int n=4;n33;n+) int num=0; int same=0; int max; int maxpage=0; int dis=0; int i=0; int k=0; int sum=n; int bmaxsize; for (k=0;kn;k+) /初始化页面数组和计数数组 bk=-1; countk=0; for (i=0;ivpf;i+) num=0; for (k=0;kn;k+) if(ai=bk) /测试是否命中 same=k; num+; for(k=0;kn;k+) countk+; if(num!=0) countsame=0; /命中时,该页面计数器清零 else dis+; /未命中时 if(sum=0) /当没空白页面时 max=0; for(k=0;kn;k+) if(maxcountk) /找出计数器值最大的页面替换 max=countk; maxpage=k; bmaxpage
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行爆款基金营销方案
- 医药公司的服务营销方案
- 商场会员纳新营销方案
- 重庆天友营销方案策划
- 福州建筑方案流程咨询
- 风险管理项目咨询方案
- 制度体系优化咨询方案
- 酒店营销数字化平台方案
- 民族文化村物业租赁及文化传承服务协议
- 男方赌博成瘾离婚赔偿及财产分配子女监护协议
- 幼儿园中班《饲养员请客》课件
- GB/T 6003.2-2024试验筛技术要求和检验第2部分:金属穿孔板试验筛
- 甘肃省工程勘察设计收费指导标准2022版(全过程工程咨询)
- 人教版音乐九年级上册第1单元选唱《中国军魂》教案
- 中医糖尿病治疗:特效中成药集
- 肺癌诊疗路径解读2024课件
- 心脏起搏器植入指南解读
- 学生会文体部部门招新
- 胃肠镜院感培训课件
- 应急管理学院成立可行性方案
- 矿山后勤与基础设施
评论
0/150
提交评论