Ad

Monday, October 12, 2015

LFU Program

LFU Program

#include<stdio.h>
struct page
   {
      int pno;
      int counter;
    }pages[10];
void print(int a[],int n)
    {
     int i;
     for(i=0;i<n;i++)
  {
    printf(" %d ",a[i]);
   }
      printf("\n");
     }
int search(int e,int a[],int n)
    {
    int i;
      for(i=0;i<n;i++)
{
    if(e==a[i])
  {
return 1;
   }
}
    return 0;
    }
void initialize()
  {
   int i=0;
   for(i=0;i<10;i++)
       {
  pages[i].counter=0;
       }
  }
void main()
  {
    int prs[30],prss,nf,i,j,pno,mm[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
    int min_t=999,min_p,pf=0;
    clrscr();
printf("Enter MM size(no. of frames):");
scanf("%d",&nf);
printf("enter page ref. string size:");
scanf("%d",&prss);
printf("enter page ref string:");
for(i=0;i<prss;i++)
   {
scanf("%d",&prs[i]);
   }
initialize();//making all page counter=0
//LFU algo.
for(i=0;i<prss;i++)
    {
    pno=prs[i];
    pages[pno].counter++;//increment counter for referenced page
min_t=999;
if(search(prs[i],mm,nf)==0)//when referred page is not in mm
 {
for(j=0;j<nf;j++)//to get least counter page in MM
  {
   pno=mm[j];
    if(pages[pno].counter<min_t)
{
min_t=pages[pno].counter;
min_p=j;
}
   }
mm[min_p]=prs[i];
printf("--Page Fault--");
pf++;
}
print(mm,nf);
     }
    printf("\nNo. of Page Faults:%d",pf);
    getch();
   }

Output:

Wednesday, October 7, 2015

LRU Program


                                      LRU Program

#include<stdio.h>
struct page
   {
      int pno;
      int at;  
    }pages[10];
void print(int a[],int n)
    {
     int i;
     for(i=0;i<n;i++)
           {
             printf(" %d ",a[i]);
            }
      printf("\n");
     }
int search(int e,int a[],int n)
    {
    int i;
      for(i=0;i<n;i++)
        {
    if(e==a[i])
           {
        return 1;
            }
         }
    return 0;
    }
void main()
  {
    int prs[30],prss,nf,i,j,pno,mm[10]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
    int counter=0,min_t=999,min_p,pf=0;
        printf("Enter MM size(no. of frames):");
        scanf("%d",&nf);
        printf("enter page ref. string size:");
        scanf("%d",&prss);
        printf("enter page ref string:");
        for(i=0;i<prss;i++)
            {
        scanf("%d",&prs[i]);
            }
         //LRU algo.
         for(i=0;i<prss;i++)
             {
        counter++;//logical clock ticks for every page ref.
        pno=prs[i];
                pages[pno].at=counter;//storing time of page ref.
        min_t=999;
                if(search(prs[i],mm,nf)==0)
                  {
                for(j=0;j<nf;j++)
                   {
                    pno=mm[j];
                     if(pages[pno].at<min_t)
                        {
                min_t=pages[pno].at;
                min_p=j;
                         }
                    }
                mm[min_p]=prs[i];
                printf("--Page Fault--");
                pf++;
                 }
                print(mm,nf);
   
              }
    printf("\nNo. of Page Faults:%d",pf);  
   }
OutPut:-
 
 Enter MM size(no. of frames):3
enter page ref. string size:20
enter page ref string:7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
--Page Fault-- 7  -1  -1
--Page Fault-- 7  0  -1
--Page Fault-- 7  0  1
--Page Fault-- 2  0  1
 2  0  1
--Page Fault-- 2  0  3
 2  0  3
--Page Fault-- 4  0  3
--Page Fault-- 4  0  2
--Page Fault-- 4  3  2
--Page Fault-- 0  3  2
 0  3  2
 0  3  2
--Page Fault-- 1  3  2
 1  3  2
--Page Fault-- 1  0  2
 1  0  2
--Page Fault-- 1  0  7
 1  0  7
 1  0  7

No. of Page Faults:12