This is Project 03 of CSE.30341.FA20.
- Domer McDomerson ([email protected])
- Belle Fleur ([email protected])
The following are questions that should help you in thinking about how to approach implementing Project 03. For this project, responses to these brainstorming questions are not required.
-
When releasing a
Block
:-
How do you determine if the
Block
you are releasing is at the end of the heap? -
How do you compute how much was actually allocated for the
Block
(including the header)? -
How do you adjust the heap pointer.
-
-
When detaching a
Block
, what pointers need to be updated? -
When merging two
Block
s:-
How do you determine the end of the destination
Block
? -
How do you determine the start of the source
Block
? -
What is the capacity of the merged
Block
?
-
-
When splitting a
Block
:-
What do you do if the
Block
's capacity is not large enough for a newBlock
header and the alignedsize
? -
What is the address of the new
Block
you split off? -
What is the capacity of the new
Block
you split off? -
What are the pointers of the new
Block
? -
What must be updated for the original
Block
(after the split)?
-
-
What do we need to keep track of to compute the internal fragmentation of the Free List?
-
What do we need to keep track of to compute the external fragmentation of the Free List?
-
What are we looking for in the First Fit algorithm?
-
What are we looking for in the Best Fit algorithm?
-
What are we looking for in the Worst Fit algorithm?
-
When we insert into the Free List:
-
When do we want to merge blocks?
-
What pointers needed to be updated when we merge blocks?
-
What happens when we can't perform a merge in the middle of the FreeList?
-
-
During a
malloc
, when do we split aBlock
, allocate aBlock
, anddetach
aBlock
? -
When we
free
, when do we try to release aBlock
and what happens if that fails? -
What happens during a
calloc
? -
What happens during a
realloc
?
Link to video demonstration of chat application.
Describe any known errors, bugs, or deviations from the requirements.