ABSTRACT
Computer system courses have long benefited from simulators in conveying important concepts to students. We have modified the Java source code of the MOSS virtual memory simulator to allow users to easily switch between different page replacement algorithms including FIFO, LRU, and Optimal replacement algorithms. The simulator clearly demonstrates the behavior of the page replacement algorithms in a virtual memory system, and provides a convenient way to illustrate page faults and their corresponding page fault costs. Equipped with a GUI for control and page table visualization, it allows the student to visually see how page tables operate and which pages page replacement algorithms evict in case of a page fault. Moreover, class projects may be assigned requiring operating system students to code new page replacement algorithms which they want to simulate and integrate them into the MOSS VM simulator code files thus enhancing the students' Java coding skills. By running various simulations, students can collect page replacement statistics thus comparing the performance of various replacement algorithms.
- A. Tanenbaum, Page Replacement Algorithms, PHR http://www.phptr.com/articles/article.asp?p=25260&rl=1Google Scholar
- MOSS Memory Management Simulator, http://www.ontko.com/moss/memory/memory.exeGoogle Scholar
- R. Ontko. MOSS Memory Management Simulator User Guide, http://www.ontko.com/moss/memory/user_guide.htmlGoogle Scholar
- A. Tanenbaum. Modern Operating Systems, Prentice Hall, 2nd edition, 2001. Google ScholarDigital Library
- A. Silberchatz, P. Galvin, and P. Gagne. Operating Systems Concepts with Java, 7th Edition, J. Wiley & Sons, Inc., 2005. Google ScholarDigital Library
- A. V. Aho, P. J. Denning, J. D. Ullman. Principles of Optimal Page Replacement. J. ACM, Jan. 1971, 18(1):80--93. Google ScholarDigital Library
- Y. Smaragdakis. General Adaptive Re-placement Policies. In Proc. of 4th Int. Sym-posium on Memory Management, Vancouver, Canada, 2004, pp. 108--119. Google ScholarDigital Library
- G. Glass, and P. Cao. Adaptive Page Re-placement Based on Memory Reference Be-havior. In Proc. ACM SIGMETRICS Int. Conf. on Measurement and Modeling of Computer Systems. Seattle, U.S.A. 1997, pp. 115--126. Google ScholarDigital Library
- M. Ujaldon, S. Sharma, and J. Saltz. Page Replacement Using Marginal Loss Functions. In Proc. of ACM/IEEE Conf. on Supercomputting. San Jose, U.S.A. 1997. pp. 1--12. Google ScholarDigital Library
- C. Waldspurger. Memory Resource Man-agement in VMware ESX Server. ACM SI-GOPS Operating Systems Review. Winter 2002, 36 (SI):181--194. Google ScholarDigital Library
- Y. Joo et al. Demand Paging for One-NAND#8482; Flash eXecute-in-place. In Proc. of 4th Int. Conf. on Hardware/software codesign and system synthesis. Seoul, Korea, 2006, pp. 229--234. Google ScholarDigital Library
Index Terms
- Teaching page replacement algorithms with a Java-based VM simulator
Recommendations
Page replacement algorithms for NAND flash memory storages
ICCSA'07: Proceedings of the 2007 international conference on Computational science and its applications - Volume Part IThis paper presents new page replacement algorithms for NAND flash memory, called CFLRU/C, CFLRU/E, and DL-CFLRU/E. The algorithms aim at reducing the number of erase operations and improving the wear-leveling degree of flash memory. In the CFLRU/C and ...
Counter-Based Cache Replacement and Bypassing Algorithms
Recent studies have shown that in highly associative caches, the performance gap between the Least Recently Used (LRU) and the theoretical optimal replacement algorithms is large, motivating the design of alternative replacement algorithms to improve ...
Transient and Steady-state Regime of a Family of List-based Cache Replacement Algorithms
SIGMETRICS '15: Proceedings of the 2015 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer SystemsIn this paper we study the performance of a family of cache replacement algorithms. The cache is decomposed into lists. Items enter the cache via the first list. An item enters the cache via the first list and jumps to the next list whenever a hit on it ...
Comments