As an assignment in operating systems we have to write our own code for malloc and free in C programming language, I know if i asked the code for it there is no point of me to study. i’m facing the problem of not knowing where to include initializing char array with 50000 bytes and making two lists free and used. in my function i can’t trigger malloc or free to happen automatically. and a 3rd party main program will be used to test my functions…..
if my file is mymalloc.c or what ever
void* myalloc(size_t size)
{
//code for allocating memory
}
void myfree(void *ptr)
{
//code for free the memory
}
where do the code for initiating memory space and lists will go..
I think you only have to implement a memory manager. So you don’t have to use
brk,sbrk, …Just put used memory in a simple array and fragment it somehow. Since it’s homework you want to make it as simple as possible or else you run into problems due to complexity/time constraints of your assignment.
You only have to decide which tactic you want to use. I’d suggest to use the buddy system. Though it’s a bit more complicated than the most simple ones.. maybe fixed sized fragmentation is simpler..
Maybe this is also a good read.
Don’t do something low-level as suggested in the other answers..