cout<<\页面置换\ cout<<\页面置换\ cout<<\按其它键结束程序;\ cin>>c;
if(c==1)///FIFO页面置换 ///FIFO(); { n=0;
cout<<\算法页面置换情况如下: cout< if(Search(p[i].num,page)>=0) 存中 { cout< cout<<\ \ i++; ///i加1 } else 中 \ ///当前页面在内 ///输出当前页 ///当前页不在内存 { if(t==M)t=0; else { n++; ///缺页次数加1 page[t].num=p[i].num; ///把当前页面放入内存中 cout< print(page); ///打印当前页面 t++; //下一个内存块 i++; ///指向下一个页面 } } } cout<<\缺页次数:\ 缺页率:\= \ } if(c==2)///LRU页面置换,最近最久未使用 { n=0; cout<<\ LRU算法页面置换情况如下: \ cout< t t=Search(p[i].num,page); if(t>=0)///如果已在内存块中 { page[t].time=0;///把与它相同的内存块的时间置0 for(a=0; a if(a!=t)page[a].time++;///其它的时间加1 cout< else ///如果不在内存块中 { n++; ///缺页次数加1 t=Max(page); ///返回最近最久未使用的块号赋值给 page[t].num=p[i].num; ///进行替换 page[t].time=0; ///替换后时间置为0 cout< if(a!=t)page[a].time++; ///其它的时间加1 } i++; } cout<<\缺页次数:\ 缺页率:\= \ } if(c==3)///OPT页面置换 { n=0; cout<<\ OPT算法置换情况如下:\ cout< if(Search(p[i].num,page)>=0)///如果已在内存块中 { cout< 号最小的找出来 else///如果不在内存块中 { int a=0; for(t=0; t if(page[t].num==0)a++;///记录空的内存块数 if(a!=0) ///有空内存块 { int q=M; for(t=0; t if(page[t].num==0&&q>t)q=t;///把空内存块中块 page[q].num=p[i].num;///把缺页换过来 n++; ///缺页次数加一 cout<