MMS is a software simulates dynamic memory management using the page-based scheme (paging) with FIFO page replacement. It operates in concurrent/parallel mode based on the Producer–Consumer problem. Developed as a project for the Operating Systems course, it aims to explore memory management concepts and to simulate various workloads in order to analyze their impact on performance (execution time and memory usage).
MMS/
├── memory/
│ ├── manager/
│ │ └── MemoryManager.java
│ ├── virtual/
│ │ ├── PageTableEntry.java
│ │ └── PageTable.java
│ └── physical/
│ ├── Frame.java
│ └── PhysicalMemory.java
├── process/
│ ├── Request.java
│ ├── RequestGenerator.java
│ └── RequestProducerConsumer.java
└── PerformanceChartGenerator.java
Java JDK
(requires Java 8 or higher)
#Clone the project
$ git clone https://github.com/Ytalk/main-memory-simulator.git
#Enter directory
$ cd main-memory-simulator
#Run
#Linux/macOS:
$ chmod +x mvnw
$ ./mvnw compile
$ ./mvnw exec:java
#Windows:
$ ./mvnw compile
$ ./mvnw exec:java