Write a C Program To Implement optimal Page Replacement Algorithm in operating system

#include<stdio.h>

int n,page[20],f,fr[20],i;
void display()
{
 for(i=0;i<f;i++)
 {
  printf("%8d",fr[i]);
 }
 printf("\n");
}
void request()
{
 printf("enter no.of pages:");
 scanf("%d",&n);
 printf("enter no.of frames:");
 scanf("%d",&f);
 printf("enter no.of page no.s");
 for(i=0;i<n;i++)
 {
  scanf("%d",&page[i]);
 }
 for(i=0;i<n;i++)
 {
  fr[i]=-1;
 }
}
void replace()
{
 int j,flag=0,pf=0;
 int max,lp[10],index,m;
 for(j=0;j<f;j++)
 {
  fr[j]=page[j];
  flag=1;
  pf++;
  display();
 }
 for(j=f;j<n;j++)
 {
  flag=0;
  for(i=0;i<f;i++)
  {
   if(fr[i]==page[j])
   {
    flag=1;
    break;
   }
  }
  if(flag==0)
  {
   for(i=0;i<f;i++)
   lp[i]=0;
   for(i=0;i<f;i++)
   {
    for(m=j+1;m<n;m++)
    {
     if(fr[i]==page[m])
     {
      lp[i]=m-j;
      break;
     }
    }
   }
   max=lp[0];
   index=0;
   for(i=0;i<f;i++)
   {
    if(lp[i]==0)
    {
     index=i;
     break;
    }
    else
    {
     if(max<lp[i])
     {
      max=lp[i];
      index=i;
     }
    }
   }
   fr[index]=page[j];
   pf++;
   display();
  }
 }
 printf("page faults:%d",pf);
}
void main()
{

 request();
 replace();

}

Comments

Popular posts from this blog

Write C programs to simulate the Paging techniques of memory management

Write C programs to simulate the Two level directory File organization technique

Write C programs to simulate the Hierarchical directory File organization technique