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


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


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

int stack[5], x,f,al[10],flag;
void selectPage(int s){
 int i,j;
 for(i=0;i<x;i++){
  if(stack[i]==s){
   for(j=i;j<x;j++){
    stack[j]=stack[j+1];
   }
  }
 }
 stack[x]=s;
}

int searchPage(int s){
 int i;
 for(i=0;i<f;i++){
  if(al[i]==s){
   return i;
  }
 }
 return -1;
}

void main(){
 setbuf(stdout,NULL);
 int i,j,pg[50],tp,pf;
 printf("\nEnter the number of frames:");
 scanf("%d",&f);
 printf("\nEnter the total pages:");
 scanf("%d",&tp);
 printf("\nEnter the page string:");
 for(i=0;i<tp;i++){
  scanf("%d",&pg[i]);
 }
 pf=0;
 x=-1;
 flag=-1;
 for(i=0;flag!=f;i++){
  if(searchPage(pg[i])==-1){
   pf++;
   stack[++x]=pg[i];
   al[++flag]=pg[i];
  }else{
   selectPage(pg[i]);
  }
 }
 for(;i<tp;i++){
  if(searchPage(pg[i])==-1){
   for(j=0;j<f;j++){
    if(al[j]==stack[x]){
     al[j]=pg[i];
     x--;
     pf++;
     break;
    }
   }
  }else{
   selectPage(pg[i]);
  }
 }
 printf("\nPage Fault:%d",pf);
}

Post a Comment

Previous Post Next Post