Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- *
- * @author Mustafa
- */
- public class FIFO extends PageReplacement{
- ArrayList<PageTableEntry> validPages = new ArrayList<PageTableEntry>(); // store all the pages in memory
- ArrayList<PageTableEntry> inValidPages = new ArrayList<PageTableEntry>(); // store all the not in memory
- public FIFO(List<PageTableEntry> pageTable, boolean[] memoryFrames) {
- super(pageTable, memoryFrames);
- // add all the valid pages
- for(PageTableEntry pte : super.pageTable) {
- if(pte.isValid()) {
- validPages.add(pte);
- }
- }
- // add all the invalid pages
- for(PageTableEntry pte : super.pageTable) {
- if(!pte.isValid()) {
- inValidPages.add(pte);
- }
- }
- }
- /**
- *
- * @param numberNewPTE
- * @return the page number to be removed from memory
- */
- @Override
- public int getTargetPage(int numberNewPTE) {
- int result = numberNewPTE;
- // if there was a page in memory, remove it and add it to invalid pages
- if(validPages.size() > 0) {
- result = validPages.get(0).getPageFrameNumber();
- inValidPages.add(validPages.remove(0)); // take page on top of memory and add it to tail of inValid pagess
- }
- // now add the page number in virtual space to memory tail
- if(inValidPages.size() > 0) {
- validPages.add(inValidPages.remove(0)); // take page on top of virtual memory and add it to tail of memory pages
- }
- return result;
- }
- }
Add Comment
Please, Sign In to add comment