Tuesday 12 May 2015

Program 12a):
AIM: To implement page replacement algorithms FIFO (First In First Out)

 
#include<stdio.h>
#include<conio.h>
int i,j,nof,nor,flag=0,ref[50],frm[50],pf=0,victim=-1;
void main()
{
 clrscr();
 printf("\n \t\t\t FIFI PAGE REPLACEMENT ALGORITHM");
 printf("\n Enter no.of frames....");
 scanf("%d",&nof);
 printf("Enter number of reference string..\n");
 scanf("%d",&nor);
 printf("\n Enter the reference string..");
 for(i=0;i<nor;i++)
 scanf("%d",&ref[i]);
 printf("\nThe given reference string:");
 for(i=0;i<nor;i++)
 printf("%4d",ref[i]);
 for(i=1;i<=nof;i++)
 frm[i]=-1;
 printf("\n");
 for(i=0;i<nor;i++)
 {
   flag=0;
   printf("\n\t Reference np%d->\t",ref[i]);
   for(j=0;j<nof;j++)
   {
     if(frm[j]==ref[i])
     {
       flag=1;
       break;
     }}
      if(flag==0)
   {
     pf++;
     victim++;
     victim=victim%nof;
     frm[victim]=ref[i];
     for(j=0;j<nof;j++)
     printf("%4d",frm[j]);
   }
 }
 printf("\n\n\t\t No.of pages faults...%d",pf);
 getch();
}


OUTPUT:


Program 12b):
AIM: To implement page replacement algorithm LRU (Least Recently Used)

#include<stdio.h>
#include<conio.h>
int i,j,nof,nor,flag=0,ref[50],frm[50],pf=0,victim=-1;
int recent[10],lrucal[50],count=0;
int lruvictim();

void main()
{
  clrscr();
  printf("\n\t\t\t LRU PAGE REPLACEMENT ALGORITHM");
  printf("\n Enter no.of Frames....");
  scanf("%d",&nof);

  printf(" Enter no.of reference string..");
  scanf("%d",&nor);

  printf("\n Enter reference string..");
  for(i=0;i<nor;i++)
  scanf("%d",&ref[i]);

  printf("\n\n\t\t LRU PAGE REPLACEMENT ALGORITHM ");
  printf("\n\t The given reference string:");
  printf("\n………………………………..");
  for(i=0;i<nor;i++)
  printf("%4d",ref[i]);
  for(i=1;i<=nof;i++)
  {
    frm[i]=-1;
    lrucal[i]=0;
  }

  for(i=0;i<10;i++)
   recent[i]=0;
   printf("\n");
   for(i=0;i<nor;i++)
   {
     flag=0;
     printf("\n\t Reference NO %d->\t",ref[i]);
     for(j=0;j<nof;j++)
     {
      


        if(frm[j]==ref[i])
       {
           flag=1;
           break;
       }
     }

     if(flag==0)
     {
       count++;
       if(count<=nof)
       victim++;
       else
       victim=lruvictim();
       pf++;
       frm[victim]=ref[i];
       for(j=0;j<nof;j++)
       printf("%4d",frm[j]);
     }
     recent[ref[i]]=i;
   }
   printf("\n\n\t No.of page faults...%d",pf);
   getch();
}
int lruvictim()
{
  int i,j,temp1,temp2;
  for(i=0;i<nof;i++)
  {
    temp1=frm[i];
    lrucal[i]=recent[temp1];
  }
  temp2=lrucal[0];
  for(j=1;j<nof;j++)
  {
    if(temp2>lrucal[j])
    temp2=lrucal[j];
  }
  for(i=0;i<nof;i++)
  if(ref[temp2]==frm[i])
  return i;
  return 0;
}


OUTPUT:
                        




Program 12c):
AIM: To implement page replacement algorithms Optimal (The page which is not used for longest time)


#include<stdio.h>
#include<conio.h>
int i,j,nof,nor,flag=0,ref[50],frm[50],pf=0,victim=-1;
int recent[10],optcal[50],count=0;
int optvictim();
void main()
{
   clrscr();
   printf("\n OPTIMAL PAGE REPLACEMENT ALGORITHN");
   printf("\n.................................");
   printf("\nEnter the no.of frames");
   scanf("%d",&nof);
   printf("Enter the no.of reference string");
   scanf("%d",&nor);
   printf("Enter the reference string");
   for(i=0;i<nor;i++)
       scanf("%d",&ref[i]);
   clrscr();
   printf("\n OPTIMAL PAGE REPLACEMENT ALGORITHM");
   printf("\n................................");
   printf("\nThe given string");
   printf("\n....................\n");
   for(i=0;i<nor;i++)
       printf("%4d",ref[i]);
   for(i=0;i<nof;i++)
   {
       frm[i]=-1;
       optcal[i]=0;
   }
   for(i=0;i<10;i++)
       recent[i]=0;
   printf("\n");
   for(i=0;i<nor;i++)
   {
      flag=0;
      printf("\n\tref no %d ->\t",ref[i]);
      for(j=0;j<nof;j++)
      {
          if(frm[j]==ref[i])
          {
             flag=1;
             break;
          }
      }
      if(flag==0)
      {
          count++;
          if(count<=nof)
              victim++;
          else
              victim=optvictim(i);
          pf++;
          frm[victim]=ref[i];
          for(j=0;j<nof;j++)
             printf("%4d",frm[j]);
      }
   }
   printf("\n Number of page faults: %d",pf);
   getch();
}
int optvictim(int index)
{
   int i,j,temp,notfound;
   for(i=0;i<nof;i++)
   {
      notfound=1;
      for(j=index;j<nor;j++)
          if(frm[i]==ref[j])
          {
              notfound=0;
              optcal[i]=j;
              break;
          }
      if(notfound==1)
             return i;
   }
   temp=optcal[0];
   for(i=1;i<nof;i++)
       if(temp<optcal[i])
             temp=optcal[i];
   for(i=0;i<nof;i++)
       if(frm[temp]==frm[i])
             return i;
 return 0;
}

No comments:

Post a Comment