Advertisement
Guest User

Untitled

a guest
May 27th, 2013
227
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.54 KB | None | 0 0
  1. public class APROK {
  2.  
  3.     int [] pamiecFizyczna;
  4.     int [] pamiecWirtualna;
  5.     int [] ciagOdwolan;
  6.     int iloscWyrzuconych = 0;
  7.     int licznik = 0;
  8.     int wielkoscPamieciFizycznej;
  9.     int licznikCiaguOdwolan=0;
  10.     int [] stos;
  11.     int [] stosZBitem0;
  12.     int [] drugaSzansa;
  13.    
  14.     public APROK (int n,int x){//n ramki, x strony{
  15.  
  16.     //  System.out.println("APROK");
  17.        
  18.         pamiecFizyczna = new int [n];
  19.         wielkoscPamieciFizycznej = n;
  20.  
  21.         ciagOdwolan = new int[x];
  22.         pamiecWirtualna = new int [x];
  23.  
  24.         drugaSzansa = new int[wielkoscPamieciFizycznej];
  25.         stos = new int[wielkoscPamieciFizycznej];
  26.  
  27.     }
  28.    
  29.     public void symulacja (int tab[]){
  30.         for (int i=0;i<tab.length;i++){
  31.             ciagOdwolan[i]=tab[i];
  32.         }
  33.         System.out.println();
  34.         for (int i = 0;i<drugaSzansa.length;i++){
  35.             drugaSzansa[i] = 1;
  36.         }
  37.         //wypelnienie ciagu odwolan
  38.        
  39.         for (int i = 0;i<pamiecFizyczna.length;i++){
  40.             pamiecFizyczna[i]=ciagOdwolan[i];
  41.             stos = pamiecFizyczna;
  42.             iloscWyrzuconych++;
  43.             licznikCiaguOdwolan++;
  44.         }
  45.             for (int i = pamiecFizyczna.length;i<ciagOdwolan.length;i++){ /////////
  46.             if (czyWystepuje(ciagOdwolan[i])){
  47.             }
  48.             else {
  49.                 zamianaWStosie();
  50.                 iloscWyrzuconych++;
  51.             }
  52.            
  53.         }
  54.         System.out.println("Ilosc wyrzuconych stron w Aproksymalnym "+iloscWyrzuconych );
  55.     }
  56.    
  57.     public boolean czyWystepuje(int j){
  58.         for (int i =0;i<pamiecFizyczna.length;i++){
  59.             if (pamiecFizyczna[i]==j){
  60.                 return true;
  61.             }
  62.         }
  63.         return false;
  64.     }
  65.    
  66.     public void zamianaWStosie(){
  67.         while (sprawdzPierwszyElement()){
  68.             zamienPierwszyZOstatnim();
  69.         }
  70.         usunPierwszyIZamien();
  71.     }
  72.    
  73.     public void zamienPierwszyZOstatnim(){
  74.         int temp [] = new int [pamiecFizyczna.length];
  75.         for (int i = 0;i<stos.length-1;i++){
  76.             temp [i] = stos[i+1];
  77.         }
  78.         temp[wielkoscPamieciFizycznej-1] = stos[0];
  79.         stos = temp;
  80.        
  81.         int tempDruga [] = new int [pamiecFizyczna.length];
  82.         for (int i = 0;i<stos.length-1;i++){
  83.             tempDruga [i] = drugaSzansa[i+1];
  84.         }
  85.         tempDruga[wielkoscPamieciFizycznej-1] = 0;
  86.         drugaSzansa = tempDruga;
  87.        
  88.        
  89.     }
  90.    
  91.     public boolean sprawdzPierwszyElement(){
  92.         if (drugaSzansa[0] == 1){
  93.             return true;
  94.         }
  95.         return false;
  96.     }
  97.    
  98.     public void usunPierwszyIZamien(){
  99.         int temp [] = new int [pamiecFizyczna.length];
  100.         for (int i = 0;i<stos.length-1;i++){
  101.             temp [i] = stos[i+1];
  102.         }
  103.         temp[wielkoscPamieciFizycznej-1] = ciagOdwolan[licznikCiaguOdwolan];
  104.         stos = temp;
  105.         drugaSzansa[wielkoscPamieciFizycznej-1] = 1;
  106.         licznikCiaguOdwolan++;
  107.     }
  108.    
  109.     /*public static void main(String[] args) {
  110.         APROK aprok = new APROK();
  111.         aprok.symulacja();
  112.     }*/
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement