实验报告三内存页面置换算法的设计参考模板_第1页
实验报告三内存页面置换算法的设计参考模板_第2页
实验报告三内存页面置换算法的设计参考模板_第3页
实验报告三内存页面置换算法的设计参考模板_第4页
实验报告三内存页面置换算法的设计参考模板_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验报告三内存页面置换算法的设计1 / 7 实验报告三内存页面置换算法的设计姓名:丛菲学号: 20100830205 班级:信息安全二班一、实习内容?实现最近最久未使用(lru )置换算法二、实习目的?linux中,为了提高内存利用率,提供了内外存进程对换机制,内存空间的分配和回收均以页为单位进行,一个进程只需将其一部分调入内存便可运行,还支持请求调页的存储管理方式。?本实习要求学生通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。三、实习题目1. 最近最久未使用(lru )置换算法原理就是:当需要淘汰某页面时,选择当前一段时间内最久未使用

2、过的页先淘汰,即淘汰距当前最远的上次使用的页。?例 如 : 分 配 给 该 进 程 的 页 块 数 为3 , 一 个20位 长 的 页 面 访 问 序 列为:12560,36536,56042,70435 ,则缺页次数和缺页率按下图给出: 2. 假定分配给该进程的页块数为3,页面访问序列长度为20。本实验可以采用数组结构实现,首先随机产生页面序列,当发生请求调页时,若内存已满,则需要利用lru 算法,将当前一段时间内最久未使用过的页替换出去。?模拟程序的算法如下图:实验报告三内存页面置换算法的设计四、实现代码为:#include #define m 3 #define n 20 #define

3、 myprintf printf(|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|n) /*表格控制 */ typedef struct page int num; /*记录页面号 */ int time; /* 记录调入内存时间*/ page; /* 页面逻辑结构,结构为方便算法实现设计*/ page bm; /*内存单元数 */ int cmn; /* 暂保存内存当前的状态:缓冲区*/ int queue100; /*记录调入队列 */ int k; /* 调入队列计数变量*/ /*初始化内存单元、缓冲区*/ 实验报告三内存页面置换算法的设计void in

4、it(page *b,int cmn) 实验报告三内存页面置换算法的设计 int i,j; for(i=0;in;i+) bi.num=-1; bi.time=n-i-1; for(i=0;im;i+) for(j=0;jn;j+) cij=-1; /*取得在内存中停留最久的页面,默认状态下为最早调入的页面*/ int getmax(page *b) int i; int max=-1; int tag=0; for(i=0;imax) max=bi.time; tag=i; return tag; /*判断页面是否已在内存中*/ int equation(int fold,page *b)

5、int i; for(i=0;i=0) 实验报告三内存页面置换算法的设计 bval.time=0; for(i=0;im;i+) if (i!=val) bi.time+; else/页面不存在 queue+k=fold;/* 记录调入页面 */ val=getmax(b); bval.num=fold; bval.time=0; for(i=0;im;i+) if (i!=val) bi.time+; main()/* 主程序 */ int an=1,0,5,1,7,1,0,2,4,1,0,0,8,7,5,4,3,2,3,4; int i,j; start: k=-1; init(b, c)

6、; for(i=0;in;i+) lru(ai,b); c0i=ai; /*记录当前的内存单元中的页面*/ for(j=0;jm;j+) cji=bj.num; /*结果输出 */ printf(nei cun zhuang tai :n); myprintf; for(j=0;jn;j+) printf(|%2d ,aj); printf(|n); myprintf; for(i=0;im;i+) for(j=0;jn;j+) if(cij=-1) 实验报告三内存页面置换算法的设计printf(|%2c ,32); else printf(|%2d ,cij); printf(|n); my

7、printf; printf(ndiao ru dui lie :); for(i=0;ik+1;i+) printf(%3d,queuei); printf(nque ye ci shu :%6dnque ye lv:%16.2f%n,k+1,(float)(k+1)/n*100); 五、在虚拟机上的具体操作及结果六、思考题?比较lru和其他置换算法各自的优缺点,能够实现其他置换算法模拟设计,分析内存页面数的变化对各种置换算法命中率的影响。答: 内存页面数越多哦,命中率越高 . lru 算法可以减少页错误率,较易理解 . 最优算法页错误最低,且没有 belady 异常 ,但是较难实现fifo 算法容易理解和实现,但是页错误率较高七、实验总结实验报告三内存页面置换算法的设计明白 lru 算法的原理 ,当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论