下载此文档

页面置换算法代码实现(完整版).doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
页面置换算法代码实现(完整版)实验原理:在内存运行过程中,若其所要访问的页面不在内存而需要把他们调入内存,但内存已经没有空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据送磁盘的对换区中。但应将那个页面调出,需根据一定的算法来确定。通常,把选择换出页面的算法成为页面置换算法。置换算法的好坏,将直接影响到系统的性能。一个好的页面置换算法,应具有较低的页面更换频率。从理论上讲,应将那些以后不再会访问的页面置换出,或者把那些在较长时间内不会在访问的页面调出。目前存在着许多种置换算法(如FIFO,OPT,LRU),他们都试图更接近理论上的目标。实验目的:,:写出FIFO,OPT和LRU算法的程序代码,并比较它们的算法性能。实验步骤:代码如下:#include<>#defineM4//物理页数#defineN20 //需要调入的页数typedefstructpage{ intnum; inttime;}Page; //物理页项,包括调入的页号和时间Pagemm[M];//4个物理页intqueue1[20],queue2[20],queue3[20]; //记录置换的页intK=0,S=0,T=0; //置换页数组的标识intpos=0;//记录存在最长时间项//初始化内存页表项及存储内存情况的空间voidINIT(){ inti; for(i=0;i<M;i++){ mm[i].num=-1; mm[i].time=0; }}//取得内存中存在时间最久的位置intGetMax(){ intmax=-1; inti; for(i=0;i<M;i++){ if(mm[i].time>max){ max=mm[i].time; pos=i; } } returnpos;}//检查最长时间不使用页面intlongesttime(intfold){ inti; intmax=-1; for(i=fold;i<N;i++){ if(mm[0].num!=i){ mm[0].time++; } if(mm[1].num!=i){ mm[1].time++; } if(mm[2].num!=i){ mm[2].time++; } if(mm[3].num!=i){ mm[3].time++; } } for(i=0;i<M;i++){ if(mm[i].time>max){ max=mm[i].time; pos=i; } } returnpos;}//检查某页是否在内存intEquation(intfold){ inti; for(i=0;i<M;i++){ if(mm[i].num==fold) returni; } return-1;}//检查物理内存是否已满,-1表满,其他不满intCheck(){ inti; for(i=0;i<M;i++){ if(mm[i].num==-1) returni; } return-1;}//先进先出voidFIFO(intfold){ inti; inta,b,c; a=Equation(fold); //页已存在 if(a!=-1){} //页不存在 else{ b=Check(); //内存还有空闲 if(b!=-1){

页面置换算法代码实现(完整版) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人gyzhluyin
  • 文件大小62 KB
  • 时间2019-08-25