Simulate the following page replacement algorithms LRU
#include<stdio.h>
#include<conio.h>
#include<string.h>
int findmin();
int i,j,pf=0,f,n,min,ref[40],frame[10],avail,ind=0,count=0,k,time[10];
void main()
{
printf("enter the number of pages : ");
scanf("%d",&n);
printf("enter the page numbers : ");
for(i=0;i<n;i++)
scanf("%d",&ref[i]);
printf("enter the number of frames : ");
scanf("%d",&f);
printf("Page frames:");
printf("\n");
for(i=0;i<f;i++)
{
frame[i]=-1;
time[i]=0;
}
for(i=0;i<n;i++)
{
avail=0;
for(j=0;j<f;j++)
{
if(frame[j]==ref[i])
{
avail=1;
count++;
time[j]=count;
break;
}
}
if(avail==0)
{
k=findmin();
frame[k]=ref[i];
count++;
time[k]=count;
pf++;
for(j=0;j<f;j++)
{
if(frame[j]!=-1)
printf("\t%d",frame[j]);
}
printf("\n");
}
}
printf("total page faults : %d\n",pf);
}
int findmin()
{
min=time[0];
ind=0;
for(k=1;k<f;k++)
{
if(time[k]<min)
{
min=time[k];
ind=k;
}
}
return ind;
}
#include<conio.h>
#include<string.h>
int findmin();
int i,j,pf=0,f,n,min,ref[40],frame[10],avail,ind=0,count=0,k,time[10];
void main()
{
printf("enter the number of pages : ");
scanf("%d",&n);
printf("enter the page numbers : ");
for(i=0;i<n;i++)
scanf("%d",&ref[i]);
printf("enter the number of frames : ");
scanf("%d",&f);
printf("Page frames:");
printf("\n");
for(i=0;i<f;i++)
{
frame[i]=-1;
time[i]=0;
}
for(i=0;i<n;i++)
{
avail=0;
for(j=0;j<f;j++)
{
if(frame[j]==ref[i])
{
avail=1;
count++;
time[j]=count;
break;
}
}
if(avail==0)
{
k=findmin();
frame[k]=ref[i];
count++;
time[k]=count;
pf++;
for(j=0;j<f;j++)
{
if(frame[j]!=-1)
printf("\t%d",frame[j]);
}
printf("\n");
}
}
printf("total page faults : %d\n",pf);
}
int findmin()
{
min=time[0];
ind=0;
for(k=1;k<f;k++)
{
if(time[k]<min)
{
min=time[k];
ind=k;
}
}
return ind;
}
Comments
Post a Comment