<<endl;Р cout<<endl;Р cout<<" OPT算法置换情况如下:"<<endl;Р cout<<endl;Р cout<<" ****************************************** "<<endl;Р while(i<m)Р {Р if(Search(p[i].num,page)>=0)//如果已在内存块中Р {Р cout<<p[i].num<<" ";Р cout<<"不缺页"<<endl;Р i++;Р }Р else//如果不在内存块中Р {Р int a=0;Р for(t=0;t<M;t++)Р if(page[t].num==0)a++;//记录空的内存块数Р if(a!=0)//有空内存块Р {Р int q=M;Р for(t=0;t<M;t++)Р if(page[t].num==0&&q>t)q=t;//把空内存块中块号最小的找出来Р page[q].num=p[i].num;Р n++;Р cout<<p[i].num<<" ";Р print(page);Р i++;Р }Р elseР?Р {Р int temp=0,s; Р for(t=0;t<M;t++)//寻找内存块中下次使用离现在最久的页面Р if(temp<Count(page,i,t,p))Р {Р temp=Count(page,i,t,p); Р s=t;Р }//把找到的块号赋给sР page[s].num=p[i].num;Р n++;Р cout<<p[i].num<<" ";Р print(page);?Р i++;Р }Р }Р }?Р Р cout<<"缺页次数:"<<n<<" 缺页率:"<<n/m<<endl;Р }Р}while(c==1||c==2||c==3);Р Р return 0;Р} Р五.运行结果演示