int Find(int L[], int current_page) //判断current_page是否在L[]中
{
for( int i=0 ; i <BLOCK; i++)
if (current_page == L[i] )
return 1;
return 0;
}
//OPT方法/////////////////////////////
void OPT(int page[])
{
int count = 0; //
int defPage=0; //缺页次数
int i,j,k,temp;
int L[BLOCK]; //L[]为存放内存页面
for (i = 0 ; i< BLOCK ; i++)
L[i] = -1; //初始化L[]全为-1,因为页面号没有负数,所以能保证有新页面被置换进内存
printf(" OPT page Replacement Algorithms:\n");
for ( i = 0; i< PNo; i++)
{ //此处填写,实现OPT的代码
}
printf("\n The total default pages is:%5d \n",defPage);
}
///////////FIFO方法//////////////
void FIFO(int page[])
{
int count = 0; //
int defPage=0; //缺页次数
int i,k=0;
int L[BLOCK]; //L[]为存放内存页面
for (i = 0 ; i< BLOCK ; i++)
L[i] = -1; //初始化L[]全为-1,因为页面号没有负数,所以能保证有新页面被置换进内存
printf(" FIFO page Replacement Algorithms:\n");
for ( i = 0; i< PNo; i++)
{
//此处填写,实现FIFO的代码
}
printf("\n The total default pages is:%5d \n",defPage);
}
void main()
{
int page[PNo] = {7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};
OPT(page);
FIFO(page);