页面置换算法代码实现完整版.docx
- 文档编号:9848907
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:9
- 大小:55.46KB
页面置换算法代码实现完整版.docx
《页面置换算法代码实现完整版.docx》由会员分享,可在线阅读,更多相关《页面置换算法代码实现完整版.docx(9页珍藏版)》请在冰豆网上搜索。
页面置换算法代码实现完整版
页面置换算法代码实现(完整版)
LT
{
inti;
intmax=-1;
for(i=fold;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 if(mm[i].time>max){ max=mm[i].time; pos=i; } } returnpos; } //检查某页是否在内存 intEquation(intfold){ inti; for(i=0;i if(mm[i].num==fold) returni; } return-1; } //检查物理内存是否已满,-1表满,其他不满 intCheck(){ inti; for(i=0;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){ mm[b].num=fold; } //内存已满,需要置换 else{ c=GetMax(); mm[c].num=fold; mm[c].time=0; } queue1[K++]=fold; } for(i=0;i if(mm[i].num! =-1){ mm[i].time++; } } } voidOPT(intfold) { inta,b,c; a=Equation(fold); if(a==-1){//页不在内存 b=Check(); //内存还有空闲 if(b! =-1){ mm[b].num=fold; } //内存已满,需要置换 else{ c=longesttime(fold); mm[c].num=fold; mm[c].time=0; } queue3[T++]=fold; } } voidLRU(intfold) { inti; inta,b; intp; a=Equation(fold); if(a! =-1)//页已在内存 { //把此项移动到链表最后一项 if(a==3)//此项已经在最后,不需要做任何改动 return; else { p=Equation(-1); if(p==-1)//链表是满的 { for(;a<3;a++) mm[a].num=mm[a+1].num; mm[3].num=fold; } elseif(p<=3)//链表不满 { for(;a mm[a].num=mm[a+1].num; mm[a].num=fold; } } } else { b=Check(); if(b! =-1)//不满 mm[b].num=fold; else { for(i=0;i<3;i++) mm[i].num=mm[i+1].num; mm[3].num=fold; } queue2[S++]=fold; } } voidmain() { intA[N],B[N]; inti; INIT(); printf("请依次输入%d个页面号: \n",N); for(i=0;i scanf("%d",&A[i]); } //FIFO for(i=0;i B[i]=A[i]; } for(i=0;i FIFO(B[i]); } printf("FIFO的"); printf("调入队列为: "); for(i=0;i printf("%3d",queue1[i]); printf("\n缺页次数为: %6d\n缺页率: %16.6f\n\n",K,(float)K/N); //LRU INIT(); for(i=0;i B[i]=A[i]; } for(i=0;i LRU(B[i]); } printf("LRU的"); printf("调入队列为: "); for(i=0;i printf("%3d",queue2[i]); printf("\n缺页次数为: %6d\n缺页率: %16.6f\n\n",S,(float)S/N); //OPT INIT(); for(i=0;i B[i]=A[i]; } for(i=0;i OPT(B[i]); } printf("OPT的"); printf("调入队列为: "); for(i=0;i printf("%3d",queue3[i]); printf("\n缺页次数为: %6d\n缺页率: %16.6f\n\n",T,(float)T/N); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 页面 置换 算法 代码 实现 完整版