A C++ and Qt-based interactive application that simulates virtual memory management in an operating system. It visualizes complex memory operations, including page replacement policies, address translation, and memory allocation. This project was developed as part of an academic assignment to deepen understanding of memory management systems.
- Simulates virtual memory management with page replacement policies (FIFO, LRU).
- Interactive visualization of:
- Virtual Address Space
- Page Table
- Translation Lookaside Buffer (TLB)
- Physical Memory
- Step-by-step address translation with detailed logging.
- Read/write memory operations with user-defined addresses and data.
- Dynamic GUI developed using Qt Framework.
- C++ for core logic and memory management.
- Qt Framework for GUI (widgets, signals/slots).
- OOP principles and modular design.
/VirtualMemorySimulator
│── main.cpp
│── PageTable.cpp / PageTable.h
│── PhysicalMemory.cpp / PhysicalMemory.h
│── TLB.cpp / TLB.h
│── VirtualAddressSpace.cpp / VirtualAddressSpace.h
│── VirtualMemoryManager.cpp / VirtualMemoryManager.h
│── VirtualMemorySimulator.cpp / VirtualMemorySimulator.h
│── README.md
-
The user selects:
- RAM size
- Page size
- Replacement policy (FIFO, LRU)
-
The system generates:
- Virtual and physical memory tables
- TLB and page tables
-
Users can:
- Perform read/write operations on virtual addresses
- Step through address translation and page loading into physical memory
- Visualize page faults, TLB hits/misses, and page replacements
-
Prerequisites:
- C++17 or newer
- Qt5/Qt6 installed and configured (Qt Widgets module)
- CMake (optional) or your favorite IDE (CLion, Qt Creator)
-
Clone the repository:
git clone https://github.com/somodidenise/Virtual-Memory-Simulator.git cd VirtualMemorySimulator -
Open the project in Qt Creator or your preferred C++ IDE.
-
Build and Run:
- Configure the build kit (compiler + Qt version)
- Build the project
- Run the executable
This project is licensed under the MIT License - see the LICENSE file for details.
