Memory Manager#
Overview#
Memory Manager is a Heap Memory Allocator that works with both 32-bit and 64-bit memory configurations.
Links 🔗#
Contributions#
- Implemented a First Fit List Allocator that handles large object allocation(i.e., memory greater than 96 bytes).
- Implemented a Fixed-size pool Allocator to handle memory blocks ranging from 0 to 96 bytes (this allocator contains different memory buckets, such as 100 blocks for 0-16 bytes, 200 blocks for 16-32 bytes, and 400 blocks for 33-96 bytes).
- Reduced memory metadata footprint using Bit Array implementation that uses bits instead of n-bytes to keep track of the memory block allocation and deallocation; optimized read instructions using byte-aligned address allocations.
- Leveraged compiler intrinsics for optimizations and incorporated memory leak detection for unit test cases.
Gallery 📹 📷#
Memory Manger Unit Test 📹#
MemoryBlock#
BitArray#
FirstFitAllocator#
FixedSizeAllocator#