The implementation must pass through some basic guidelines:
- When requesting memory from the OS, we must use mmap (rather than sbrk).
- Although a real memory allocator requests more memory from the OS whenever it can't satisfy a request from the user, our memory allocator must call mmap only one time (when it is first initialized).
- The choice for Data Structures to maintain the free list and policy for choosing the chunk of memory was upto us.
- The memory allocator should be more flexible in how the user can specify what memory should be freed.
- mem.cpp contains all the function definitions.
- driver.cpp is just for the debugging purpose and contains main function.
- mem.h contains all the function declarations.
- To run the program execute run.sh