免费预览已结束,剩余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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年七台河市中医医院公开招聘编外医疗卫生技术人员笔试考试参考题库及答案解析
- 2025云南曲靖市罗平县教育体育系统引进教育人才20人笔试考试参考题库及答案解析
- 2025上海静安区区管企业招聘中层管理人员17人考试笔试备考试题及答案解析
- 蜂产品品评员复试能力考核试卷含答案
- 火工品检测工岗前技能理论考核试卷含答案
- 机电设备维修工持续改进知识考核试卷含答案
- 202天津和平投资发展集团有限公司招聘7人笔试历年参考题库附带答案详解
- 蜂产品品评员持续改进水平考核试卷含答案
- 2025四川广安市岳池县顾县镇招聘城镇公益性岗位6人考试笔试备考题库及答案解析
- 电学计量员风险评估水平考核试卷含答案
- 低压单体设备的停送电操作规程
- 幼儿园讲故事小鸭子找朋友
- 眼眶病眼眶肿瘤七制讲课4
- 2023年小升初英数题附答案
- GB/T 34940.2-2017静态切换系统(STS)第2部分:电磁兼容性(EMC)要求
- GB/T 21198.4-2007贵金属合金首饰中贵金属含量的测定ICP光谱法第4部分:999‰贵金属合金首饰贵金属含量的测定差减法
- GB/T 21143-2014金属材料准静态断裂韧度的统一试验方法
- 第六章分子的结构与性质
- 大学英语-My Stroke of Luck优秀课件
- 第14章-裁剪《创新设计-TRIZ系统化创新教程》教学课件
- 高三语文现代文阅读《微纪元》课件29张
评论
0/150
提交评论