/**
* @(#)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