Write simulation program for demand paging and show the page scheduling and total number of page faults according to LFU page replacement algorithm. Assume the memory of n frames.

Write simulation program for demand paging and show the page scheduling and total number of page faults according to LFU page replacement algorithm. Assume the memory of n frames.


Program:
#include <stdio.h>
#include <stdlib.h>

void main(){
 setbuf(stdout,NULL);
 int f, tp ,al[50][50]={-1, -1}, i,j,pg[50],pf,x,queue[50];
 printf("\nEnter total number of frames:");
 scanf("%d",&f);
 printf("\nEnter total number of pages:");
 scanf("%d",&tp);
 printf("\nEnter page string:");
 for(i=0;i<tp;i++){
  scanf("%d",&pg[i]);
 }
 pf=0;
 for(i=0;i<tp;i++){
  for(j=0;j<f;j++){
   if(al[j][i]==pg[i]){
    break;
   }
  }
  if(f==j){
   for(j=0;j<f;j++){
    if(al[j][i]==-1){
     al[j][i]=pg[i];
     queue[++x]=pg[i];
     pf++;
     break;
    }
   }
   if(f==j){
    for(j=0;j<f;j++){
     if(al[j][i]==queue[x]){
      al[j][i]=pg[i];
      pf++;
      x--;
     }
    }
   }
  } else{
   queue[++x]=pg[i];
  }
 }
 printf("\nTotal page faults are:%d\n",pf);
 for(j=0;j<f;j++){
  printf(" %d",al[i][0]);
 }
 printf("\n");
 for(j=0;j<f;j++){
  printf(" %d",al[i][1]);
 }
 printf("\n");
 for(j=0;j<f;j++){
  printf(" %d",al[i][2]);
 }
}

Post a Comment

Previous Post Next Post