Virtual memory is a key feature in modern computer systems. A virtual memory system simulates a memory with a large virtual address space using a smaller physical memory coupled with a backing store such as a disk drive. Virtual memory employs a combination of processor hardware and operating systems software to translate virtual addresses to physical addresses and manage the movement of data between physical memory and disk. Virtual memory is a complex topic which students can find difficult to understand using the static diagrams found in textbooks and lecture notes.
This paper describes an interactive graphical tool called VMV (Virtual Memory Visualization) that is intended to improve student understanding of the underlying concepts and operation of virtual memory. VMV uses animated diagrams to illustrate the organization and operation of a virtual memory system on a step-by-step basis. It supports multiple configurations that can be used emphasize the different roles of hardware and software during different operations. The source code for VMV is available at (https://github.com/jnestor/CADApps).
VMV is being used this semester in a sophomore-level computer organization and architecture course. We developed a set of case studies using lectures and student exercises that focus on basic page translation, page faults, handling memory writes, and using a translation lookaside buffer (TLB). The effectiveness of these case studies will be assessed using a combination of pre/post quizzes, exam problems, and a student survey.
Title
Work in Progress: A Visualization Aid for Learning Virtual Memory Concepts.
Nestor, J. A. and Z. Yin (2022) "“Work in Progress: A Visualization Aid for Learning Virtual Memory Concepts.” ASEE Annual Conference and Exposition Proceedings. Paper 36640.