🚀 Advanced Memory Management Algorithm Visualization Tool for Learning & Research
Page Replacement Algorithms Simulator is a comprehensive educational tool designed to visualize and compare memory management algorithms.
It provides students and researchers with an interactive way to understand how different page replacement strategies handle virtual memory allocation.
| 🎯 Core Functionality | 🔧 Technical Features |
|---|---|
| ✅ Multi-Algorithm Support: OPT, LRU, MRU, FIFO | ✅ Colorized Output: Easy-to-read console visualization |
| ✅ Interactive Input System: Configure frames & processes dynamically | ✅ Error Handling: Input validation for smooth execution |
| ✅ Real-time Visualization: Step-by-step execution | ✅ Cross-Platform: Compatible with Dev-C++ & MinGW64 |
| ✅ Performance Metrics: Page fault tracking & analysis | ✅ Educational Focus: Classroom-ready demonstrations |
- Optimal (OPT): Replace the page not needed for the longest time
- Least Recently Used (LRU): Replace the least recently accessed page
- Most Recently Used (MRU): Replace the most recently accessed page
- First-In-First-Out (FIFO): Replace the oldest page in memory
🛠️ Development Environment
|
Dev-C++ IDE Main environment for compilation |
Compiler MinGW64 included with Dev-C++ |
📁 Required Files
colors.h → Color formatting utilities
utility.h → Helper functions & definitions
git clone https://github.com/icodecedd/page-replacement.git
cd page-replacement-algorithms# Copy the required header files to your Dev-C++ include directory.
# Replace <DEVCPP_PATH> with your Dev-C++ installation path.
# Default path: C:\Program Files (x86)\Dev-Cpp\MinGW64\include\
copy colors.h "<DEVCPP_PATH>\MinGW64\include\"
copy utility.h "<DEVCPP_PATH>\MinGW64\include\"- Open the project file in Dev-C++.
- Press F9 to compile and run.
- Follow the interactive prompts to use the simulator.
We enthusiastically welcome contributions from the community! Here's how you can help improve this project:
| 🐛 Bug Reports | 📖 Documentation | 💻 Code Contributions | 🎨 Enhancements |
|---|---|---|---|
| Report issues and bugs | Improve README content | Implement new algorithms | Improve UI/UX |
| Suggest improvements | Add code comments | Optimize existing code | Add visualizations |
| Test on different platforms | Create tutorials | Add new features | Performance optimizations |
- Fork the repository
- Create a feature branch (
git checkout -b feature-name) - Commit your changes (
git commit -m 'Add new feature') - Push to your branch (
git push origin feature-name) - Open a Pull Request