Strategie
Class MFU

java.lang.Object
  |
  +--Strategie.ReplaceStrategy
        |
        +--Strategie.MFU

public class MFU
extends ReplaceStrategy

Implementation of the page replacement strategy MFU (Most-Frequently-Used). The victim page is the page with the highest value of accesses.


Field Summary
static boolean ISACCESSCOUNT
          Number of accesses is relevant for this strategy.
static boolean ISACCESSTIME
          Time of access is not relevant for this strategy.
static boolean ISINSERTIONTIME
          Time of insertion is relevant for this strategy.
static java.lang.String LONGNAME
          Long name of this streategy.
static int MODBITCOUNT
          Number of reference-bits of this strategy.
static int REFBITCOUNT
          Number of reference-bits of this strategy.
static java.lang.String SHORTNAME
          Short name of this streategy.
 
Fields inherited from class Strategie.ReplaceStrategy
isAccessCount, isAccessTime, isInsertTime, isShowMemoryDetails, longName, modifyBitCount, referenceBitCount, shortName
 
Constructor Summary
MFU(boolean showDetails)
          Creates a new instance of this strategy.
 
Method Summary
 Memory createMemory(int size, int refBits, int modBits)
          Creates a new memory structure with the given size and number of reference- and modifyBits.
 int getDrawLfdNr(Memory memory, int i)
          Returns the index of the frame i in memory structure.
 Page getVictimPage(Memory memory, SimuData simu, GUI gui)
          Selects the next victim page.
 void reInsertPage(Memory memory, Page reInsertPage, SimuData simu, GUI gui)
          Reinserts a page into memory.
 void replacePage(Memory memory, Page oldPage, Page newPage, SimuData simu, GUI gui)
          Replaces the oldPage by the newPage in memory.
 void setInitVictimPointer(Memory memory)
          Sets the indexpointer to the page that has to be placed first.
 
Methods inherited from class Strategie.ReplaceStrategy
getLongName, getModifyBitCount, getReferenceBitCount, getShortName, isAccessCount, isAccessTime, isInsertTime, isModifyBit, isReferenceBit, isShowMemoryDetails, setShowMemoryDetails, sortMemory
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

SHORTNAME

public static final java.lang.String SHORTNAME
Short name of this streategy.

LONGNAME

public static final java.lang.String LONGNAME
Long name of this streategy.

REFBITCOUNT

public static final int REFBITCOUNT
Number of reference-bits of this strategy.

MODBITCOUNT

public static final int MODBITCOUNT
Number of reference-bits of this strategy.

ISACCESSCOUNT

public static final boolean ISACCESSCOUNT
Number of accesses is relevant for this strategy.

ISACCESSTIME

public static final boolean ISACCESSTIME
Time of access is not relevant for this strategy.

ISINSERTIONTIME

public static final boolean ISINSERTIONTIME
Time of insertion is relevant for this strategy.
Constructor Detail

MFU

public MFU(boolean showDetails)
Creates a new instance of this strategy.
Method Detail

createMemory

public Memory createMemory(int size,
                           int refBits,
                           int modBits)
Creates a new memory structure with the given size and number of reference- and modifyBits.
Overrides:
createMemory in class ReplaceStrategy

setInitVictimPointer

public void setInitVictimPointer(Memory memory)
Sets the indexpointer to the page that has to be placed first. Only needed at the beginning when creating new memory.
Overrides:
setInitVictimPointer in class ReplaceStrategy

getDrawLfdNr

public int getDrawLfdNr(Memory memory,
                        int i)
Returns the index of the frame i in memory structure. The memory structure can have an strategy-dependant internal sort. This is needed for drawing the memory details in the strategy-dependant order.
Overrides:
getDrawLfdNr in class ReplaceStrategy

getVictimPage

public Page getVictimPage(Memory memory,
                          SimuData simu,
                          GUI gui)
Selects the next victim page. It's the oldest page in memory.
Overrides:
getVictimPage in class ReplaceStrategy

replacePage

public void replacePage(Memory memory,
                        Page oldPage,
                        Page newPage,
                        SimuData simu,
                        GUI gui)
Replaces the oldPage by the newPage in memory.
Overrides:
replacePage in class ReplaceStrategy

reInsertPage

public void reInsertPage(Memory memory,
                         Page reInsertPage,
                         SimuData simu,
                         GUI gui)
Reinserts a page into memory. Needed after a page hit. when the page's values has been changed and they are important for the sort in memory.
Overrides:
reInsertPage in class ReplaceStrategy