/*功能描述:输入可用内存页面数和一个作业访问逻辑页号的序列
*给出FIFO、LRU、OPT算法的缺页中断率
*本程序中设初始页框里的页号与实际页号都不同
*在VC6.0里测试通过
*/
#include<iostream.h>
#define M 40
int N;
struct Pro
{
int num,time;
};
int Input(int m,Pro p[M])
{
cout<<"请输入实际页数:";
do
{
cin>>m;
if(m>M)cout<<"数目太多,请重试"<<endl;
else break;
}while(1);
cout<<endl<<"请输入各页面号"<<endl;
for(int i=0;i<m;i++)
{
cin>>p[i].num;
p[i].time=0;
}
return m;
}
void print(Pro *page1)//打印当前的页面
{
Pro *page=new Pro[N];
page=page1;
for(int i=0;i<N;i++)cout<<page[i].num<<" ";
cout<<endl;
}
int Search(int e,Pro *page1 )
{せんせい
Pro *page=new Pro[N];
page=page1;
for(int i=0;i<N;i++)if(e==page[i].num)return i;
return -1;
}
int Max(Pro *page1)
{
Pro *page=new Pro[N];
page=page1;
int e=page[0].time,i=0;
while(i<N)//找出离现在时间最长的页面
{
if(e<page[i].time)e=page[i].time;
i++;
}
for( i=0;i<N;i++)if(e==page[i].time)return i;
return -1;