You are on page 1of 3

FIRST IN FIRST OUT

#include<stdio.h>
#include<conio.h>
void main()
{
int frame[20][20];
int stack[20 ],pageref[20] ,pagerem[20] ,pageid[20];
int top= 1,n,nl ,c,pagefault[20],count=0,i,j;
clrscr();
printf("\nNo of pages: ");
scanf("%d" ,&n);
printf("\nNo of frames: ");
scanf("%d" ,&nl);
printf("\nEnter the string: ");
for(i= 1;i<=n;i++)
{
scanf("%d", &pageref[i]);
}
printf("\n lnitialize the frames:\n");
for(j= 1;j <=nl;j++)
{
printf("\t");
scanf("%d",&frame[j] [0]);
}
for(i= 1;i<=n;i++)
{
pagefault[i]=0;
pagerem[i]=0;
pageid[i]=0;
}
for(i=1;i<=nl;i++)
{
for(j=1;j<=nl;j++)
{
if(pageref[i]==frame[j][i-1])
{
c=1;
break;
}
else
c=0;
}
for(j= 1 ;j <=nl;j++)
{
stack[j]=frame[j][i-1];

}
if(c== 1)
{
for(j= 1;j<=nl;j++)
{
frame[j][i]=frame[j][i-1];
}
}
else if( c==0)
{
count++;
pagefault[i]=count;
pageid[i]=pageref[i];
pagerem[i]=stack[top];
stack[top ]=pageref[i];
top++;
if(top==nl+1)
top= 1 ;
for(j= 1 ;j<=n;j++)
frame[j] [i]=stack[j];
}
}
getch();
clrscr();
printf("\t\tFIRST IN FIRST OUT ");
printf("\n---------- ");
printf("\nPage ref: ");
for(i= 1 ;i<=n;i++)
printf("\ntf%d" ,pageref[i]);
printf("\n");
printf("-------- ");
printf("\n");
for(j= 1;j <=nl;j++)
{
printf("\nFrame%d:",j);
for(i= 1 ;i<=n;i++)
{
printf("\t%d" ,frame[j][i]);
}
}
printf("\n \nPage fault\n");
for(i= 1 ;i<=n;i++)
{
if(pagefault[ i ]==0)
printf(" ");
else

printf("%d\t" ,pagefault[i]); }
printf("\n");
printf("\nPage load");
for(i= 1;i<=n;i++)
{
if(pageid[i]==0)
printf(" ");
else
printf("\n%d" ,pageid[i]);
}
printf("\n");
printf("\nPage remaining");
for(i= 1 ;i<=n;i++)
{
if(pagerem[i]==0)
printf(" ");
else
printf("%d" ,pagerem[i]);
}
printf("\n \t\t ------");
getch();
}

You might also like