Advertisement
Guest User

Untitled

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