Guest User

Untitled

a guest
Jan 22nd, 2018
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.80 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.List;
  4.  
  5.  
  6.  
  7. /*
  8.  * To change this template, choose Tools | Templates
  9.  * and open the template in the editor.
  10.  */
  11.  
  12. /**
  13.  *
  14.  * @author Mustafa
  15.  */
  16. public class FIFO extends PageReplacement{
  17.     ArrayList<PageTableEntry> validPages = new ArrayList<PageTableEntry>(); // store all the pages in memory
  18.     ArrayList<PageTableEntry> inValidPages = new ArrayList<PageTableEntry>(); // store all the not in memory
  19.  
  20.     public FIFO(List<PageTableEntry> pageTable, boolean[] memoryFrames) {
  21.         super(pageTable, memoryFrames);
  22.        
  23.         // add all the valid pages
  24.         for(PageTableEntry pte : super.pageTable) {
  25.             if(pte.isValid()) {
  26.                 validPages.add(pte);
  27.             }
  28.         }
  29.         // add all the invalid pages
  30.         for(PageTableEntry pte : super.pageTable) {
  31.             if(!pte.isValid()) {
  32.                 inValidPages.add(pte);
  33.             }
  34.         }
  35.     }
  36.    
  37.     /**
  38.      *
  39.      * @param numberNewPTE
  40.      * @return the page number to be removed from memory
  41.      */
  42.     @Override
  43.     public int getTargetPage(int numberNewPTE) {
  44.        
  45.         int result = numberNewPTE;
  46.         // if there was a page in memory, remove it and add it to invalid pages
  47.         if(validPages.size() > 0) {
  48.             result = validPages.get(0).getPageFrameNumber();
  49.             inValidPages.add(validPages.remove(0)); // take page on top of memory and add it to tail of inValid pagess
  50.         }
  51.        
  52.         // now add the page number in virtual space to memory tail
  53.         if(inValidPages.size() > 0) {
  54.             validPages.add(inValidPages.remove(0)); // take page on top of virtual memory and add it to tail of memory pages
  55.         }
  56.        
  57.         return result;
  58.        
  59.     }
  60.    
  61.    
  62. }
Add Comment
Please, Sign In to add comment