int time;
//记录调入内存时间
int visitBit; //访问位
}Page;
Page P[M];
//内存单元数
int c[M][N];
//暂保存内存当前的状态
int queue[M]={-1,-1,-1};
//记录调入内存的页面
int front=0;
//队列头指针
int current=0;
//初始化内存单元、缓冲区
void Init(Page *p,int c[M][N])
{
}
int i,j;
for(i=0;i
for(i=0;i
return 0;
}
//LRU 置换算法
//取得在内存中停留最久的页面,默认状态下为最早调入的页面
int GetMax(Page *p)
{
}
int i;
int max=-1;
int tag=0;
for(i=0;imax)
{
}
max=p[i].time;
tag=i;
return tag;
//LRU 核心部分
int LRU(int fold,Page *p)
{
int i;
int val;
val=Equation(fold,p);
if (val>=0)