C Program to implement LRU page Replacement Algorithm
#include<stdio.h>
main()
{
int str[100],n,f,mem[10][10];
int index,i,j,k,pg,ch,min,max=0,count=0;
printf("\n Enter the number of entries:\n");
scanf("%d",&n);
printf("\n Enter the string:\n");
for(i=0;i<n;i++)
scanf("%d",&str[i]);
printf("Enter the number of frames:");
scanf("%d",&f);
for(i=0;i<f;i++)
{
mem[i][0]=-1;
mem[i][1]=0;
}
for(i=0;i<n;i++)
{
pg=0;
for(j=0;j<f;j++)
{
if(mem[j][0]==str[i])
{
pg=1;
}
}
if(pg==1)
{
printf("\n");
continue;
}
pg=0;
count=count+1;
for(j=0;j<f;j++)
{
if(mem[j][0]==-1)
{
pg=1;
break;
}
}
if(pg==1)
{
mem[j][0]=str[i];
printf("\n");
for(j=0;j<f&&mem[j][0]!=-1;j++)
{
printf("%d ",mem[j][0]);
printf("\n");
}
}
else
{
pg=0;
for(k=0;k<f;k++)
{
for(j=i-1;j>=0;j--)
{
if(str[j]==mem[k][0])
{
mem[k][1]=j;
break;
}
}
}
min=9999;
for(j=0;j<f;j++)
{
if(min>mem[j][1])
{
min=mem[j][1];
index=j;
}
}
mem[index][0]=str[i];
printf("\n");
for(j=0;j<f;j++)
{
printf("%d ",mem[j][0]);
printf("\n");
}
}
}
printf("\n Page Fault=%d\n",count);
}
x
No comments:
Post a Comment