티스토리 뷰

컴퓨터/개발

Page Replacement Code

KoreaMin 2011. 11. 28. 18:47
반응형


import java.io.*;
class replacepage

 {
 

public static void main(String args[])throws IOException

{
    BufferedReader obj=new BufferedReader(new InputStreamReader(System.in));
   int f,page=0,ch,pgf=0,n,chn=0;
boolean flag;
 int pages[];   //pgf-page fault
do{
 System.out.println("Menu");
 System.out.println("1.FIFO");
 System.out.println("2.LRU");
 System.out.println("3.LFU");
 System.out.println("4.EXIT");
 System.out.println("ENTER YOUR CHOICE: ");
  ch=Integer.parseInt(obj.readLine());
 switch(ch)
 {

 case 1:
  
  int pt=0;
 
 System.out.println("enter no. of frames: ");
  f=Integer.parseInt(obj.readLine());
 int frame[]=new int[f];
 for(int i=0;i<f;i++)
  {
  frame[i]=-1;
  }
 System.out.println("enter the no of pages ");
  n=Integer.parseInt(obj.readLine());
  pages=new int[n];
 System.out.println("enter the page no ");
 for(int j=0;j<n;j++)
 pages[j]=Integer.parseInt(obj.readLine());
 do{
 int pg=0;
 for(pg=0;pg<n;pg++)
 {
 
 page=pages[pg];
 flag=true;
 for(int j=0;j<f;j++)
 {
 if(page==frame[j])
 {
 flag=false;
  break;
 }
 }
 if(flag)
 {
 frame[pt]=page;
 pt++;
 if(pt==f)
 pt=0;
 System.out.print("frame :");
 for(int j=0;j<f;j++)
 System.out.print(frame[j]+"   ");

 System.out.println();
 pgf++;
 }
 else
 {
 System.out.print("frame :");
 for(int j=0;j<f;j++)
 System.out.print(frame[j]+"  ");

 System.out.println();
 }
 
 chn++;
 }
 }while(chn!=n);
 System.out.println("Page fault:"+pgf);
 break;
 
 case 2:
 int k=0;
 
 System.out.println("enter no. of frames: ");
  f=Integer.parseInt(obj.readLine());
 
 int frame1[]=new int[f];
 int a[]=new int[f];
 int b[]=new int[f];
 
 for(int i=0;i<f;i++)
  {
  frame1[i]=-1;
  a[i]=-1;
  b[i]=-1;
  }
 
 System.out.println("enter the no of pages ");
  n=Integer.parseInt(obj.readLine());
  pages=new int[n];
 System.out.println("enter the page no ");
 for(int j=0;j<n;j++)
 pages[j]=Integer.parseInt(obj.readLine());
 do{
 int pg=0;
 for(pg=0;pg<n;pg++)
 {
  page=pages[pg];
  flag=true;
  for(int j=0;j<f;j++)
   {
   if(page==frame1[j])
   {flag=false; break;}
   }
 
  for(int j=0;j<f && flag;j++)
   {
   if(frame1[j]==a[f-1])
   {k=j;
    break;}
   }
 
  if(flag)
  {
  frame1[k]=page;
  System.out.println("frame :" );
  for(int j=0;j<f;j++)
  System.out.print(frame1[j]+"  ");
  pgf++;
  System.out.println();
  }
  else
  {
  System.out.println("frame :" );
  for(int j=0;j<f;j++)
  System.out.print(frame1[j]+"  ");
   System.out.println();
  }
 int p=1;
 b[0]=page;
 for(int j=0;j<a.length;j++)
 {
  if(page!=a[j] && p<f)
  {
  b[p]=a[j];
  p++;
  }
 }
 for(int j=0;j<f;j++)
 {
 a[j]=b[j];
 }
 chn++;
 
 }
 }while(chn!=n);
 System.out.println("Page fault:"+pgf);
 break;
 
 case 3:
  k=0;
 pgf=0;
 int sml;
 System.out.println("enter no. of frames: ");
  f=Integer.parseInt(obj.readLine());
 int frame2[]=new int[f];
 int cnt[]=new int [f];
 flag=true;
 
 for(int i=0;i<f;i++)
  {
  frame2[i]=-1;
  cnt[i]=0;
  }
 System.out.println("enter the no of pages ");
  n=Integer.parseInt(obj.readLine());
  pages=new int[n];
 System.out.println("enter the page no ");
 for(int j=0;j<n;j++)
 pages[j]=Integer.parseInt(obj.readLine());
 do
 {
 int pg=0;
 for(pg=0;pg<n;pg++)
 {
  page=pages[pg];
  flag=true;
  
 
 for(int j=0;j<f;j++)
 {
  if(page==frame2[j])
  {
  flag=false;
  cnt[j]++;
   break;
  }
 }
 if(flag)
 {
 
 sml=cnt[0];
 for(int j=0;j<f;j++)
 {
 if(cnt[j]<sml)
 {
 sml=cnt[j];
 break;
 }
 }
 for(int j=0;j<f;j++)
 {
 if(sml==cnt[j] )
                  {
 frame2[j]=page;
 k=j;
 break;
 }
 }
 cnt[k]=1;
 System.out.print("frame :");
 for(int j=0;j<f;j++)
 {
 System.out.print(frame2[j]+"   ");
 System.out.println();
 pgf++;
 }
 }
 else
 {
 System.out.print("frame :");
 for(int j=0;j<f;j++)
 System.out.print(frame2[j]+"  ");

 System.out.println();
 
 }
 chn++;
 } 
 }while(chn!=n);
 System.out.println("Page fault:"+pgf);
 break;
 
 case 4:
 break;
 }
     } while(ch!=4);
   }
}

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함