This repository contains implementations of various Memory Management techniques in C++ and Python programming languages.
In this repository, you will find implementations of the following memory management techniques:
- Paging
- Best Fit Memory Allocator:
- First Fit Memory Allocator:
- Fixed Partitioning Technique:
- Variable Partitioning Technique:
- Worst Fit Memory Allocator:
Each technique is implemented in both C++ and Python.
-
Paging: Paging is a memory management scheme that allows the physical memory to be divided into fixed-size blocks called pages and manages them efficiently by mapping them to corresponding logical addresses.
-
Best Fit Memory Allocator: This technique allocates the smallest free block of memory that can satisfy a requested memory allocation, leading to efficient memory utilization by reducing fragmentation.
-
First Fit Memory Allocator: It allocates the first free block of memory that is large enough to accommodate the requested memory size, which is a simple and fast method but can lead to fragmentation.
-
Worst Fit Memory Allocator: This technique allocates the largest free block of memory available, which can result in more internal fragmentation but may be suitable for scenarios where large contiguous blocks are needed.
-
Fixed Partitioning Technique: In this technique, memory is divided into fixed-size partitions, and each partition can hold a single process. It is simple to implement but can lead to internal fragmentation.
-
Variable Partitioning Technique: Unlike fixed partitioning, this technique allows memory partitions to vary in size based on the process requirements, reducing internal fragmentation.
Each memory management technique implements a different strategy for managing memory allocation and efficiency. For detailed information and usage instructions, refer to the specific directories in the repository.
To use the implementations, follow these steps:
- Clone the repository to your local machine.
- Choose the desired memory management technique.
- Navigate to the corresponding directory.
- Follow the installation instructions provided in the README file of each technique.
BOOK:
- Modern Operating Systems Book by Andrew Tanenbaum.
- Operating System Concepts Book by Abraham Silberschatz.
This repository is licensed under the MIT License. See the LICENSE file for more details.