>On lab 3, if your mm_malloc function returns NULL the driver program
>reports that as an error, ie:
>Region lies outside heap area
>Region: (nil) - 0xffe
>Heap: 0x400b5000 - 0x414b4ffd
>Failed correctness test!
>the mm_malloc is doing it's job, does this mean that we are required to
>get all of the allocation within the 20 mb limit in order to get any
>correctness points?

 Yes. Your malloc has to satisfy all the allocation requests.
The heap size is sufficiently large that a decent implementation
of mm_malloc will achieve that. Your code should be written to return 
NULL when no memory is available though, as mentioned in the 
specification, even though the  tests are set-up so that 
allocations would all succeed.

 The driver program benchmarks your allocator for utilization
and speed (throughput). Thus, for the sake of fairness, it must 
ensure that all allocators are providing the same functionality, 
i.e. doing comparable amounts of work. Otherwise, it would be 
easy to write an allocator that has very high throughput 
(e.g. one which returns NULL very often, not expending much 
effort in looking for free memory).

 hope that helps,
 -khalil
