https://github.com/somodidenise/virtual-memory-simulator
C++ Virtual Memory Simulator with a Qt GUI for visualizing address translation, page faults, TLB operations, and page replacement strategies.
https://github.com/somodidenise/virtual-memory-simulator
cplusplus fifo gui lru operating-systems qt simulator tlb virtual-memory
Last synced: 7 months ago
JSON representation
C++ Virtual Memory Simulator with a Qt GUI for visualizing address translation, page faults, TLB operations, and page replacement strategies.
- Host: GitHub
- URL: https://github.com/somodidenise/virtual-memory-simulator
- Owner: somodidenise
- License: mit
- Created: 2025-03-14T20:32:55.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-14T20:57:36.000Z (7 months ago)
- Last Synced: 2025-03-14T21:37:18.950Z (7 months ago)
- Topics: cplusplus, fifo, gui, lru, operating-systems, qt, simulator, tlb, virtual-memory
- Language: C++
- Homepage:
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🧠 Virtual Memory Simulator
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.
## 🚀 Features
- 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**.## 🛠️ Technologies Used
- **C++** for core logic and memory management.
- **Qt Framework** for GUI (widgets, signals/slots).
- **OOP principles** and modular design.## 📂 Folder Structure
```
/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
```## 🖥️ How It Works
1. **The user selects:**
- RAM size
- Page size
- Replacement policy (FIFO, LRU)2. **The system generates:**
- Virtual and physical memory tables
- TLB and page tables3. **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## ✅ Setup Instructions
1. **Prerequisites**:
- C++17 or newer
- Qt5/Qt6 installed and configured (Qt Widgets module)
- CMake (optional) or your favorite IDE (CLion, Qt Creator)2. **Clone the repository**:
```bash
git clone https://github.com/somodidenise/Virtual-Memory-Simulator.git
cd VirtualMemorySimulator3. **Open the project in Qt Creator or your preferred C++ IDE.**
4. **Build and Run**:
- Configure the build kit (compiler + Qt version)
- Build the project
- Run the executable## ✨ Screenshot
## 📜 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.