Facebook Badge

Thursday, October 21, 2010

Page Replacement Policy : First In First Out (FIFO)

/**
* @(#)PageRep.java
*
*
* @author
* @version 1.00 2010/10/3
*/

import java.util.*;

class Queue
{
int a[];
int front,rear;

public Queue(int n)
{
front=rear=-1;
a=new int [n];
for(int i=0;i<a.length;i++)
a[i]=-1;
}

public void insert(int x)
{
if(rear==a.length-1)
System.out.print("Queue overflow");
else
{
rear++;
a[rear]=x;
if(front==-1)
front=0;
}
}

public int delete()
{
if(front==-1)
{
//System.out.print("Queue underflow");
}

else
{
//System.out.print("Element deleted is "+a[front]);
}
return(a[front++]);
}

public void display()
{
int i;
if(front==-1)
System.out.println("\n********Queue empty**********");
else
for(i=front;i<=rear;i++)
System.out.print(a[i]+" ");
}

public void destroy()
{
System.out.println("\n***********Queue is destroyed***********");
front=rear-1;
}
public boolean isFull()
{
if(rear==a.length-1)
return true;
else
return false;
}
public boolean contains(int ele)
{
for(int i=0;i<a.length;i++)
if(a[i]==ele)
return true;

return false;
}
public boolean isEmpty()
{
if(front==-1)
return true;
else
return false;
}

}


class PageRep
{

public static void main(String[] args)
{
int ram[]=new int[4];
int n=0;
int age[]=new int[4];
int use[]=new int[4];
int p=0,x=0,ch=0;
int count=0;

Scanner src=new Scanner(System.in);
Queue q=new Queue(4);
do
{
System.out.print("Enter page request :");
p=src.nextInt();
if(count<ram.length && !q.contains(p))
ram[count++]=p;

if(!q.isFull()&&!q.contains(p))
{
q.insert(p);

}
if(q.isFull() && !q.contains(p))
{
System.out.print("\n\nRAM is full.. Replacement Algorithm needed..\n\n");
if(!q.isEmpty()) x=q.delete();
System.out.print("\nPage removed is :"+x);
for(int i=0;i<ram.length;i++)
if(ram[i]==x)
ram[i]=p;
}
System.out.print("\nRam contains following pages..\n");
for(int i=0;i<count;i++)
System.out.print(ram[i]+" ");
System.out.print("\nDo u want to continue: 1/0: ");
ch=src.nextInt();
}while(ch!=0);

}


}

No comments:

Post a Comment