存储管理实验实验报告.doc_第1页
存储管理实验实验报告.doc_第2页
存储管理实验实验报告.doc_第3页
存储管理实验实验报告.doc_第4页
存储管理实验实验报告.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

实验三 存储管理实验报告:程序流程:先进先出(FIFO)页面置换算法这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO算法并不能保证这些页面不被淘汰。最近最久未使用(LRU)置换算法先进先出(FIFO)页面置换算法将前三个不重复的页面引用存入分配的物理块PageTable23定义变量、数组 ,分配3个物理块、20个页面号引用产生随机数,并将随机产生的数存入PageNumber20,printf标记数组time23,存储时间时间越长的为最先进入的。依次内容为0,1,2将前三个不重复的页面引用存入分配的物理块PageTable3对PageNumber20中没存入物理块的页面引入循环顺序进行判断。标记数组time3,存储时间时间越长的为最先进入的。依次内容为2,1,0重复?NY更新time2标记对应的物理块,即为0N最近?对PageNumber20中没存入物理块的页面引入循环顺序进行判断。Y最久?重复?NY与time2标记中最长时间的物理块内容替换,counter2+1,修改time2标记执行下一个页面引用号,至循环结束与time标记中最长时间的替换,counter+1,修改time标记,执行下一个页面引用号执行下一个页面引入号,counter不发生变化循环结束,printf(FIFO页面置换次数为%d,counter-3);printf(LRU页面置换次数为%d,counter2-3);最近最久未使用(LRU)置换算法FIFO置换算法性能之所以较差,是因为它所依据的条件是各个页面调入内存的时间,而页面调入的先后并不能反映页面的使用情况。最近最久未使用(LRU)的页面置换算法,是根据页面调入内存后的使用情况进行决策的。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当须淘汰一个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。源码详细注释:#include#include#includemain()/定义变量,数组(fifo) int i,j,k,m,n,max,ChangeNumber; int counter=0; int times3=0; short PageNumber20; short PageTable3=0;/定义变量,数组(lur)int k2,m,n,min,ChangeNumber2; int counter2=0; int times23=0; short PageTable23=0;/是以当前时间为种子,产生随意数 srand(time(NULL);/将随机数存入,并打印 for(i=0;i20;i+) PageNumberi=rand()%10+1; printf(%d ,PageNumberi); printf(n);/物理块存储不重复的页面引用号(fifo) PageTable0=PageNumber0; for(n=1;n20;n+) if(PageTable0!=PageNumbern) PageTable1=PageNumbern; break; for(k=2;k20;k+) if(PageTable0!=PageNumberk)&(PageTable1!=PageNumberk) PageTable2=PageNumberk; n=k; m=k; break; counter=3;/物理块存储不重复的页面引用号(lur)PageTable20=PageNumber0; for(n=1;n20;n+) if(PageTable20!=PageNumbern) PageTable21=PageNumbern; break; for(k2=2;n20;n+) if(PageTable20!=PageNumberk2)&(PageTable21!=PageNumberk2) PageTable22=PageNumberk2; n=k2; break; /time标记(fifo) for(j=0,m;j3;j+,m-) timesj=m; for(n=k;n=times1) max=times0; else max=times1; if(max=times2) max=times2; /time标记内容对应物理块号 for(j=0;j3;j+) if(max=timesj) ChangeNumber=j; break; /替换 PageTableChangeNumber=PageNumbern; timesChangeNumber=0;/fifo time标记替换策略 for(j=0;j3;j+) if(j=ChangeNumber) timesj=0; else timesj+; counter+; else for(j=0;j3;j+) timesj+; printf(FIFO页面置换次数为%d,counter-3);/LUR PageNumber与物理块中不重复时for(n=k2;n20;n+) if(PageNumbern!=PageTable20)&(PageNumbern!=PageTable21)&(PageNumbern!=PageTable22) for(j=0;j3;j+) for(i=n-1,m=0;m3;m+,i-) if(PageTable2j=PageNumberi) times2j+;/time标记(lur) / time标记判断策略,最近 if(times20=times22) min=times22; /time标记内容对应物理块号 for(j=0;j3;j+) if(min=times2j) ChangeNumber2=j; break; /替换 PageTable2ChangeNumber2=PageNumbern;/计数 counter2+; printf(n); printf(LRU页面置换次数

温馨提示

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

评论

0/150

提交评论