FIFO ---- Page Replacement Algorithm
include<stdio.h>
void fifo(int *,int ,int );
int main()
{
int nofra ; // number of frames
int refs[20] ; // reference string
int noref ;// number of frame references
int i=0;
printf("\n enter no.of frames");
scanf("%d",&nofra);
printf("\n enter no.of references:");
scanf("%d",&noref);
printf("enter the reference string");
for(i=0;i<noref;i++)
{
scanf("%d",&refs[i]);
}
fifo(&refs,noref,nofra);
}
void fifo(int *refs,int noref,int nofra)
{
int fifomem[10],i,j,pagefaults=0,fifo=0,flag=0;
for(i=0;i<nofra;i++)
{
fifomem[i]=- 1 ;
}
for(i=0; i<noref; i++)
{
flag=0;
for(j=0;j<nofra;j++)
{
if(iifomem[j]=refs[i])
{
flag=1;
break;
}
}
if(flag==0)
{
for(j=0;j<nofra;j++)
{
if(fifomem[j]==-1)
{
fifomem[j]=refs[i];
pagefaults=pagefaults+1;
flag=1;
break;
}
}
}
if(flag==0)
{
fifomem[fifo]=refs[i];
fifo=(fifo+1)% nofra;
pagefaults=pagefaults+1;
}
}
printf("\n number of pagefaults using fifo page replacement algorithm are %d\n",pagefaults);
for(i=0;i<nofra;i++)
printf("\t%d",fifomem[i]);
}