Skip to content

Dynamic memory manager with page-based memory management that works in concurrent/parallel (using the Producer-Consumer pattern) mode, developed as a project for the Operating Systems course.

Notifications You must be signed in to change notification settings

Ytalk/main-memory-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

💾 About

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).

Class Diagram

Memory Manager Class Diagram

🏗️ Project Structure

MMS/
├── memory/
│   ├── manager/
│   │   └── MemoryManager.java
│   ├── virtual/
│   │   ├── PageTableEntry.java
│   │   └── PageTable.java
│   └── physical/
│       ├── Frame.java
│       └── PhysicalMemory.java
├── process/
│   ├── Request.java
│   ├── RequestGenerator.java
│   └── RequestProducerConsumer.java
└── PerformanceChartGenerator.java

⚙️ Technologies

📄 Dependencies

🚀 How to Run

#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

About

Dynamic memory manager with page-based memory management that works in concurrent/parallel (using the Producer-Consumer pattern) mode, developed as a project for the Operating Systems course.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages