网站大量收购独家精品文档,联系QQ:2885784924

存储管理模拟程序.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
存储管理模拟程序

存储管理模拟程序 1. 设计目的 存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 2. 设计内容 (1)通过输入或由程序产生程序执行时的页号序列,共32个页号。页号序列按下述原则生成:页号序列应具有一定随机性。(如:50%的顺序访问); (2)计算并输出下述各种算法在不同内存容量(4~32内存页面)下的命中率。 ①先进先出的算法(FIFO) ②最近最少使用算法(LRU) ③最佳淘汰算法(OPT):先淘汰最不常用的页地址 ④最少访问页面算法(LFR) 其中和为选择内容 命中率 = 1 - (页面失效次数/页地址流长度) 3.程序设计: 本程序首先用rand()函数定义和产生地址流序列,并针对不同的算法计算出相应的命中率。 I 根据实验内容将函数分成五个模块:1主程序模块,主要包括页面结构数组及页面控制结构定义,将指令流转换成页地址流 2 三个置换算法程序模块:FIFO算法模块,LRU算法模块,OPT算法模块,LFU算法模块 II 总程序模块流程图如下: 4.源程序如下: #include stdio.h #includemath.h #define maxsize 32 ##include stdlib.h define vpf 200 void FIFO(int a[]); void LRU(int a[]); void OPT(int a[]); void LFU(int a[]); int count[maxsize]; //int b[pf]; int a[vpf]; void main() // 定义主函数。 { for(int i=0;i200;i++) //用随机数产生页地址流 a[i]=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 b[maxsize]; for (k=0;kn;k++) //页面数组,计数数组初始化 { b[k]=-1; count[k]=0;} for (i=0;ivpf;i++) {num=0; for (k=0;kn;k++) //测试是否命中 { if(a[i]==b[k]) { same=k; num++; } } if(num!=0) //命中页面计数器加1 count[same]++; else { dis++; //未命中,缺页次数加1 if(sum==0) //无空白页面 { min=201; for(k=0;kn;k++) //找出计数器值最小的页面替换 { if(mincount[k]) { min=count[k]; minpage=k; } } b[minpage]=a[i]; if(num2==0) //每两次缺页计数器清零 for(k=0;kn;k++) {count[k]=0; num2=3;} count[minpage]=1; num2--; //count[minpage]=0; } else { //有空白页面 {b[n-sum]=a[i]; if(num2==0) //每两次缺页计数器清零 for(k=0;kn;k++) {count[k]=0; num2=3;} num2--; count[n-sum]=1; sum--;} } } } printf(%d,n); printf( page

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档