Simulate the following page replacement algorithms Optimal
#include<stdio.h>
#include<math.h>
int findoptimal();
int i,j,pf=0,nf,r,ffree=0,found,np,max,u,v,ref[40],frame[10],avail,ind[10],k;
void main()
{
printf("enter the number of pages : ");
scanf("%d",&np);
printf("enter the page numbers : ");
for(i=0;i<np;i++)
scanf("%d",&ref[i]);
printf("enter the number of frames : ");
scanf("%d",&nf);
printf("ref. string\tpage frames");
for(i=0;i<nf;i++)
{
frame[i]=-1;
}
for(i=0;i<np;i++)
{
printf("\n");
printf("%d\t\t",ref[i]);
avail=0;
for(j=0;j<nf;j++)
{
if(frame[j]==ref[i])
{
avail=1;
for(j=0;j<nf;j++)
printf("%d\t",frame[j]);
break;
}
}
if(avail==0)
{
if(ffree<nf)
{
k=ffree;
ffree++;
}
else
k=findoptimal(i+1);
frame[k]=ref[i];
pf++;
for(j=0;j<nf;j++)
printf("%d\t",frame[j]);
}
}
printf("\ntotal page faults : %d\n",pf);
}
int findoptimal(int p)
{
for(u=0;u<nf;u++)
{
found=0;
for(v=p;v<np;v++)
{
if(frame[u]==ref[v])
{
ind[u]=v;
found=1;
break;
}
}
if(found==0)
return u;
}
max=ind[0];
for(u=1;u<nf;u++)
{ if(ind[u]>max)
{
max=ind[u];
r=u;
}
}
return r;
}
#include<math.h>
int findoptimal();
int i,j,pf=0,nf,r,ffree=0,found,np,max,u,v,ref[40],frame[10],avail,ind[10],k;
void main()
{
printf("enter the number of pages : ");
scanf("%d",&np);
printf("enter the page numbers : ");
for(i=0;i<np;i++)
scanf("%d",&ref[i]);
printf("enter the number of frames : ");
scanf("%d",&nf);
printf("ref. string\tpage frames");
for(i=0;i<nf;i++)
{
frame[i]=-1;
}
for(i=0;i<np;i++)
{
printf("\n");
printf("%d\t\t",ref[i]);
avail=0;
for(j=0;j<nf;j++)
{
if(frame[j]==ref[i])
{
avail=1;
for(j=0;j<nf;j++)
printf("%d\t",frame[j]);
break;
}
}
if(avail==0)
{
if(ffree<nf)
{
k=ffree;
ffree++;
}
else
k=findoptimal(i+1);
frame[k]=ref[i];
pf++;
for(j=0;j<nf;j++)
printf("%d\t",frame[j]);
}
}
printf("\ntotal page faults : %d\n",pf);
}
int findoptimal(int p)
{
for(u=0;u<nf;u++)
{
found=0;
for(v=p;v<np;v++)
{
if(frame[u]==ref[v])
{
ind[u]=v;
found=1;
break;
}
}
if(found==0)
return u;
}
max=ind[0];
for(u=1;u<nf;u++)
{ if(ind[u]>max)
{
max=ind[u];
r=u;
}
}
return r;
}
#include<conio.h>
Comments
Post a Comment