Skip to content

In this repository, we deal with the implementation of the "Weighted Buddy Method for Dynamic Storage Allocation" (proposed by Shen and Peterson) and "OneBin Dynamic Storage Allocation".

License

Notifications You must be signed in to change notification settings

vineeths96/Memory-Allocators

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Language Contributors Forks Stargazers Issues MIT License LinkedIn


Memory Allocators

OneBin Allocator and SPHeap Allocator
Explore the repository»

View Problem Statement

tags : memory allocator, weighted buddy, buddy, onebin, exponential buddy system

About The Project

This project deals with the implementation of Weighted Buddy Method for Dynamic Storage Allocation proposed by Shen & Peterson and OneBin Dynamic Storage Allocation. We keep track of the memory space, Available Space List, KVAL, TAG and TYPE fields for the memory blocks centrally. We also keep track of the numbers of allocation requests, deallocation requests, area splits, buddy recombinations, internal fragmentation and external fragmentation. The program has been segregated to two folders:

  • Tests: Tests folder contain the SPHeap implementation with the uniform and exponential synthetic testing for performance evaluation.
  • Polynomial: Polynomial folder contains the implementing of SPHeap and OneBin memory allocation in the polynomial arithmetic program.

Within each directory, there are sub-directories corresponding to the memory allocators implemented. The program for each data structure is written in three files - client.c, header.c, and implement.c. Comments have been added frequently to help in understanding the logic behind implementation. Refer Problem statement file for detailed information.

Built With

This project was built with

  • C
  • Ubuntu 18.04.1
  • gcc version 7.4.0

Getting Started

Clone the repository into a local machine using

git clone https://github.com/vineeths96/Memory-Allocators

Instructions to run

Synthetic Testing

Open the terminal, and run the following command where TestMethod is Exponential or Uniform.

cd Tests/<TestMethod>

Make the program and run it.

make
./a.out
Practical Testing

Open the terminal, and run the following command where AllocMethod is OneBin or SPHeap.

cd Polynomial/<AllocMethod>

Make the program and run it.

make
./a.out

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Vineeth S - vs96codes@gmail.com

Project Link: https://github.com/vineeths96/Memory-Allocators

About

In this repository, we deal with the implementation of the "Weighted Buddy Method for Dynamic Storage Allocation" (proposed by Shen and Peterson) and "OneBin Dynamic Storage Allocation".

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published