From 85b77534ba51886b13b91ccaec1dd75d1c06d6ef Mon Sep 17 00:00:00 2001 From: ahmad-masud Date: Wed, 7 Aug 2024 15:40:09 -0700 Subject: [PATCH] first commit --- .github/workflows/test.yml | 26 ++++ .vscode/settings.json | 5 + Makefile | 17 +++ main.cpp | 41 ++++++ main.o | Bin 0 -> 188880 bytes myalloc | Bin 0 -> 94840 bytes myalloc.cpp | 294 +++++++++++++++++++++++++++++++++++++ myalloc.hpp | 42 ++++++ myalloc.o | Bin 0 -> 143360 bytes 9 files changed, 425 insertions(+) create mode 100644 .github/workflows/test.yml create mode 100644 .vscode/settings.json create mode 100644 Makefile create mode 100644 main.cpp create mode 100644 main.o create mode 100755 myalloc create mode 100644 myalloc.cpp create mode 100644 myalloc.hpp create mode 100644 myalloc.o diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..a02de7a --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,26 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + build-and-test: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install dependencies + run: sudo apt-get update && sudo apt-get install -y valgrind make gcc + + - name: Build project + run: make + + - name: Run valgrind tests + run: valgrind ./myalloc diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3c415cd --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "myalloc.h": "c" + } +} \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..34c091d --- /dev/null +++ b/Makefile @@ -0,0 +1,17 @@ +TARGET = myalloc +OBJS = main.o myalloc.o + +CXXFLAGS = -Wall -g -std=c++11 +CXX = g++ + +all: clean $(TARGET) + +%.o: %.cpp + $(CXX) -c $(CXXFLAGS) $< + +$(TARGET): $(OBJS) + $(CXX) $(CXXFLAGS) $(OBJS) -o $@ + +clean: + rm -f $(TARGET) + rm -f $(OBJS) \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..cee764c --- /dev/null +++ b/main.cpp @@ -0,0 +1,41 @@ +#include +#include +#include "myalloc.hpp" + +int main(int argc, char* argv[]) { + MyAllocator allocator(100, FIRST_FIT); + std::cout << "Using first fit algorithm on memory size 100" << std::endl; + + std::vector p(50, nullptr); + for(int i = 0; i < 10; ++i) { + p[i] = static_cast(allocator.allocate(sizeof(int))); + if(p[i] == nullptr) { + std::cout << "Allocation failed" << std::endl; + continue; + } + *(p[i]) = i; + std::cout << "p[" << i << "] = " << p[i] << " ; *p[" << i << "] = " << *(p[i]) << std::endl; + } + + allocator.printStatistics(); + + for(int i = 0; i < 10; ++i) { + if(i % 2 == 0) { + continue; + } + std::cout << "Freeing p[" << i << "]" << std::endl; + allocator.deallocate(p[i]); + p[i] = nullptr; + } + + std::cout << "available_memory " << allocator.availableMemory() << std::endl; + + std::vector before(100, nullptr); + std::vector after(100, nullptr); + allocator.compactAllocation(before, after); + + allocator.printStatistics(); + + // allocator's destructor will automatically free allocated memory + return 0; +} \ No newline at end of file diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..a2566e7bad92a2d3213eb2fd45e19e436e3da745 GIT binary patch literal 188880 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 literal 0 HcmV?d00001 diff --git a/myalloc b/myalloc new file mode 100755 index 0000000000000000000000000000000000000000..3a3a1dcf44f1e79cf030917f1aa3cd09dd2d126b GIT binary patch literal 94840 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 +#include +#include +#include +#include "myalloc.hpp" + +MyAllocator::MyAllocator(int size, AllocationAlgorithm algorithm) { + initialize(size, algorithm); +} + +MyAllocator::~MyAllocator() { + destroy(); +} + +void MyAllocator::initialize(int size, AllocationAlgorithm algorithm) { + assert(size > 0); + + // Align size to 64 bytes + size = (size + 63) & ~63; + + algorithm_ = algorithm; + size_ = size; + memory_ = malloc(static_cast(size_)); + + if (!memory_) { + fprintf(stderr, "Failed to allocate memory\n"); + exit(EXIT_FAILURE); + } + + memset(memory_, 0, static_cast(size_)); + + Block* initialBlock = static_cast(memory_); + initialBlock->size = size_; + + freeList_ = new Node{ initialBlock, nullptr }; + allocatedList_ = nullptr; + + pthread_mutex_init(&lock_, nullptr); +} + +void MyAllocator::destroy() { + pthread_mutex_lock(&lock_); + + free(memory_); + memory_ = nullptr; + + Node* current = freeList_; + while (current) { + Node* next = current->next; + delete current; + current = next; + } + + freeList_ = nullptr; + + current = allocatedList_; + while (current) { + Node* next = current->next; + delete current; + current = next; + } + + allocatedList_ = nullptr; + + pthread_mutex_unlock(&lock_); + pthread_mutex_destroy(&lock_); +} + +void* MyAllocator::allocate(int size) { + pthread_mutex_lock(&lock_); + + Node* prev = nullptr; + Node* curr = freeList_; + Node* bestPrev = nullptr; + Node* bestFit = nullptr; + size_t totalSize = size + sizeof(size_t); + + if (algorithm_ == BEST_FIT) { + while (curr) { + if (curr->block->size >= totalSize && (!bestFit || curr->block->size < bestFit->block->size)) { + bestFit = curr; + bestPrev = prev; + } + prev = curr; + curr = curr->next; + } + curr = bestFit; + prev = bestPrev; + } else { + while (curr && curr->block->size < totalSize) { + prev = curr; + curr = curr->next; + } + } + + if (curr) { + Block* block = curr->block; + + if (block->size >= totalSize + sizeof(Block)) { + Block* newBlock = reinterpret_cast(reinterpret_cast(block) + totalSize); + newBlock->size = block->size - totalSize; + + Node* newNode = new Node{ newBlock, nullptr }; + + curr->block->size = totalSize; + + if (prev) { + prev->next = newNode; + } else { + freeList_ = newNode; + } + } else { + if (prev) { + prev->next = curr->next; + } else { + freeList_ = curr->next; + } + curr->block->size = totalSize; + } + + Node* temp = allocatedList_; + if (!temp) { + allocatedList_ = curr; + } else { + while (temp->next) { + temp = temp->next; + } + temp->next = curr; + } + curr->next = nullptr; + + *reinterpret_cast(block) = totalSize; + + pthread_mutex_unlock(&lock_); + return reinterpret_cast(block) + sizeof(size_t); + } + + pthread_mutex_unlock(&lock_); + return nullptr; +} + +void MyAllocator::deallocate(void* ptr) { + assert(ptr != nullptr); + + pthread_mutex_lock(&lock_); + + Block* block = reinterpret_cast(reinterpret_cast(ptr) - sizeof(size_t)); + + Node* newNode = new Node{ block, nullptr }; + + if (!freeList_) { + freeList_ = newNode; + } else { + Node* curr = freeList_; + while (curr->next) { + curr = curr->next; + } + curr->next = newNode; + } + + Node* curr = allocatedList_; + Node* prev = nullptr; + + while (curr && curr->block != block) { + prev = curr; + curr = curr->next; + } + + if (curr) { + if (prev) { + prev->next = curr->next; + } else { + allocatedList_ = curr->next; + } + delete curr; + } + + bool merged; + do { + merged = false; + Node* current = freeList_; + while (current) { + Node* checker = current; + while (checker->next) { + if (reinterpret_cast(current->block) + current->block->size == reinterpret_cast(checker->next->block)) { + current->block->size += checker->next->block->size; + Node* temp = checker->next; + checker->next = checker->next->next; + delete temp; + merged = true; + } else { + checker = checker->next; + } + } + current = current->next; + } + } while (merged); + + pthread_mutex_unlock(&lock_); +} + +int MyAllocator::compactAllocation(std::vector& before, std::vector& after) { + pthread_mutex_lock(&lock_); + + int compactedSize = 0; + size_t offset = 0; + Node* current = allocatedList_; + + Node* temp; + while (freeList_) { + temp = freeList_; + freeList_ = freeList_->next; + delete temp; + } + + while (current) { + Node* next = current->next; + Block* block = current->block; + if (reinterpret_cast(block) != reinterpret_cast(memory_) + offset) { + std::memmove(reinterpret_cast(memory_) + offset, block, block->size); + before.push_back(reinterpret_cast(block) + sizeof(size_t)); + after.push_back(reinterpret_cast(memory_) + offset + sizeof(size_t)); + compactedSize++; + } + block = reinterpret_cast(reinterpret_cast(memory_) + offset); + current->block = block; + offset += block->size; + current = next; + } + + if (offset < static_cast(size_)) { + freeList_ = new Node{ reinterpret_cast(reinterpret_cast(memory_) + offset), nullptr }; + freeList_->block->size = size_ - offset; + } else { + freeList_ = nullptr; + } + + pthread_mutex_unlock(&lock_); + return compactedSize; +} + +int MyAllocator::availableMemory() { + pthread_mutex_lock(&lock_); + + int availableMemorySize = 0; + Node* current = freeList_; + while (current) { + availableMemorySize += current->block->size; + current = current->next; + } + + pthread_mutex_unlock(&lock_); + return availableMemorySize; +} + +void MyAllocator::printStatistics() { + pthread_mutex_lock(&lock_); + + int allocatedSize = 0; + int allocatedChunks = 0; + int freeSize = 0; + int freeChunks = 0; + int smallestFreeChunkSize = size_; + int largestFreeChunkSize = 0; + + Node* current = allocatedList_; + while (current) { + allocatedSize += current->block->size; + allocatedChunks++; + current = current->next; + } + + current = freeList_; + while (current) { + freeSize += current->block->size; + if (current->block->size > largestFreeChunkSize) { + largestFreeChunkSize = current->block->size; + } + if (current->block->size < smallestFreeChunkSize) { + smallestFreeChunkSize = current->block->size; + } + freeChunks++; + current = current->next; + } + + printf("Allocated size = %d\n", allocatedSize); + printf("Allocated chunks = %d\n", allocatedChunks); + printf("Free size = %d\n", freeSize); + printf("Free chunks = %d\n", freeChunks); + printf("Largest free chunk size = %d\n", largestFreeChunkSize); + printf("Smallest free chunk size = %d\n", smallestFreeChunkSize); + + pthread_mutex_unlock(&lock_); +} \ No newline at end of file diff --git a/myalloc.hpp b/myalloc.hpp new file mode 100644 index 0000000..a6f2a26 --- /dev/null +++ b/myalloc.hpp @@ -0,0 +1,42 @@ +#ifndef __MYALLOCATOR_H__ +#define __MYALLOCATOR_H__ + +#include +#include +#include + +enum AllocationAlgorithm { FIRST_FIT, BEST_FIT }; + +class MyAllocator { +public: + MyAllocator(int size, AllocationAlgorithm algorithm); + ~MyAllocator(); + + void* allocate(int size); + void deallocate(void* ptr); + int availableMemory(); + void printStatistics(); + int compactAllocation(std::vector& before, std::vector& after); + +private: + struct Block { + size_t size; + }; + + struct Node { + Block* block; + Node* next; + }; + + AllocationAlgorithm algorithm_; + int size_; + void* memory_; + Node* freeList_; + Node* allocatedList_; + pthread_mutex_t lock_; + + void initialize(int size, AllocationAlgorithm algorithm); + void destroy(); +}; + +#endif // __MYALLOCATOR_H__ \ No newline at end of file diff --git a/myalloc.o b/myalloc.o new file mode 100644 index 0000000000000000000000000000000000000000..7a8cdfe708a31b69bb63d30d3b84b93f3f74c1e5 GIT binary patch literal 143360 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�X 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 literal 0 HcmV?d00001