Skip to content

Simulating memory allocation-deallocation to processes in Operating Systems

License

Notifications You must be signed in to change notification settings

AkshatGadhwal/Dynamic-Memory-Allocator

Repository files navigation

Dynamic Memory Allocator

Dynamic Memory Allocator is a Java project developed for the COL106 course. It simulates memory allocation in an operating system, implementing time-efficient and cost-efficient methods.

Overview

This project aims to provide a dynamic memory allocation system that efficiently manages memory resources in an operating system. It focuses on optimizing both time and cost factors associated with memory allocation.

Features

  • Memory Allocation: Simulate the allocation of memory blocks to processes based on various allocation techniques.
  • Allocation Methods: Implement time-efficient and cost-efficient methods for memory allocation, such as First-Fit, Best-Fit, Next-Fit, Worst-Fit, and Buddy System.
  • Process Management: Manage processes and their memory requirements within the simulated memory allocator.
  • Memory Deallocation: Handle the release of memory blocks when processes terminate or free allocated memory.

Technologies Used

  • Programming Language: Java
  • Data Structures: Linked lists, arrays, and other suitable data structures for memory management
  • Allocation Techniques: First-Fit, Best-Fit, Next-Fit, Worst-Fit, and Buddy System
  • Algorithm Design: Design efficient algorithms for memory allocation and deallocation
  • Efficiency Analysis: Analyze the time and space complexity of the implemented algorithms

Usage

To run the Dynamic Memory Allocator project, follow these steps:

  1. Clone the repository: git clone https://github.com/AkshatGadhwal/Dynamic_Memory_Allocator_COL106.git
  2. Navigate to the project directory: cd Dynamic_Memory_Allocator_COL106
  3. Compile the Java source files: javac *.java
  4. Run the project: java Main

Contributing

Contributions to the Dynamic Memory Allocator project are welcome. If you have suggestions for improvements, encounter any issues, or would like to contribute new features, feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License.

Acknowledgements

We would like to acknowledge the COL106 course instructors for their guidance and support throughout the project. Their expertise and feedback have been invaluable in the development of this Dynamic Memory Allocator.

Explore the world of memory allocation in operating systems with the Dynamic Memory Allocator project!