I have a project where I am asked to develop an application to simulate how different page replacement algorithms perform (with varying working set size and stability period). My results:

  • Vertical axis: page faults
  • Horizontal axis: working set size
  • Depth axis: stable period

Are my results reasonable? I expected LRU to have better results than FIFO. Here, they are approximately the same.

For random, stability period and working set size doesnt seem to affect the performance at all? I expected similar graphs as FIFO & LRU just worst performance? If the reference string is highly stable (little branches) and have a small working set size, it should still have less page faults that an application with many branches and big working set size?

More Info

My Python Code | The Project Question

  • Length of reference string (RS): 200,000
  • Size of virtual memory (P): 1000
  • Size of main memory (F): 100
  • number of time page referenced (m): 100
  • Size of working set (e): 2 - 100
  • Stability (t): 0 - 1

Working set size (e) & stable period (t) affects how reference string are generated.

Edit
Report