小弟初学操作系统麻烦各位大侠帮我填下一下代码的空,是一个最佳页面算法的OPT和fifo,
#include<stdio.h>#define BLOCK 3 //BLOCK为内存块数
#define PNo 20 //PNo为页面访问串长度
int Next_Length(int page[],int memory, int start)//page[]为访问页面串,start表示在page中开始查找的位置
{
int i;
for( i=start; i< PNo; i++)
if( page == memory )
return i-start+1 ; //返回当前页面下一次访问的间距
return i;
}
int Pre_Length(int page[],int memory, int start)//page[]为访问页面串,start表示在page中开始查找的位置
{
int i;
for( i=start; i>=0; i--)
if( page == memory )
return start-i+1 ; //返回当前页面下一次访问的间距
return start;
}
int Find(int L[], int current_page) //判断current_page是否在L[]中
{
for( int i=0 ; i <BLOCK; i++)
if (current_page == L )
return 1;
return 0;
}
//OPT方法/////////////////////////////
void OPT(int page[])
{
int count = 0;//
int defPage=0;//缺页次数
int i,j,k,temp;
int L;//L[]为存放内存页面
for (i = 0 ; i< BLOCK ; i++)
L = -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;//L[]为存放内存页面
for (i = 0 ; i< BLOCK ; i++)
L = -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 = {7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};
OPT(page);
FIFO(page);
}
:o淡定,淡定,淡定…… 玻璃心 发表于 2013-5-16 08:04 static/image/common/back.gif
淡定,淡定,淡定……
自己已经写出来了。。。。。。 千万要记的结贴啊
页:
[1]