--- Begin loading lab3fun.cl --- --- completed loading of lab3fun.cl --- --- Begin system testing of memory manager --- Requesting memory manager for 600 bytes of memory memory pool initialized: 608 bytes available Request 100 bytes: Request result: 1 Current memory map: Addr: 1, bytes 128, taken T Addr: 129, bytes 480, taken NIL Current free memory sections: 480 free bytes @addr 129 Raw tree structure: (129 480 NIL NIL) Free mem at addr 1: Current memory map: Addr: 1, bytes 608, taken NIL Current free memory sections: 608 free bytes @addr 1 Raw tree structure: (1 608 NIL NIL) Free result: (1 608 NIL NIL) ---Request several chunks that exactly fill memory--- Request 200 bytes: Request result: 1 Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 384, taken NIL Current free memory sections: 384 free bytes @addr 225 Raw tree structure: (225 384 NIL NIL) Request 100 bytes: Request result: 225 Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 128, taken T Addr: 353, bytes 256, taken NIL Current free memory sections: 256 free bytes @addr 353 Raw tree structure: (353 256 NIL NIL) Request 130 bytes: Request result: 353 Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken T Addr: 513, bytes 96, taken NIL Current free memory sections: 96 free bytes @addr 513 Raw tree structure: (513 96 NIL NIL) Request 64 bytes: Request result: 513 Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken T Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken NIL Current free memory sections: 32 free bytes @addr 577 Raw tree structure: (577 32 NIL NIL) Request 5 bytes: Request result: 577 Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken T Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken T Current free memory sections: Raw tree structure: NIL Now try a request when no memory is left Request 32 bytes: Request result: -1 Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken T Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken T Current free memory sections: Raw tree structure: NIL Now release the 130 (actually 160) byte chunk in the middle Free mem at addr 353: Current memory map: Addr: 1, bytes 224, taken T Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken NIL Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken T Current free memory sections: 160 free bytes @addr 353 Raw tree structure: (353 160 NIL NIL) Free result: NIL Now release the 200 (actually 224) byte chunk at the beginning Free mem at addr 1: Current memory map: Addr: 1, bytes 224, taken NIL Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken NIL Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken T Current free memory sections: 160 free bytes @addr 353 224 free bytes @addr 1 Raw tree structure: (353 160 NIL (1 224 NIL NIL)) Free result: NIL Now release the 5 (actually 32) byte chunk at the end Free mem at addr 577: Current memory map: Addr: 1, bytes 224, taken NIL Addr: 225, bytes 128, taken T Addr: 353, bytes 160, taken NIL Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken NIL Current free memory sections: 32 free bytes @addr 577 160 free bytes @addr 353 224 free bytes @addr 1 Raw tree structure: (353 160 (577 32 NIL NIL) (1 224 NIL NIL)) Free result: NIL Now release the 100 (actually 128) byte second chunk, should consolidate with third (Note that it does not consolidate with the free chunk that precedes it) Free mem at addr 225: Current memory map: Addr: 1, bytes 224, taken NIL Addr: 225, bytes 288, taken NIL Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken NIL Current free memory sections: 32 free bytes @addr 577 224 free bytes @addr 1 288 free bytes @addr 225 Raw tree structure: (1 224 (577 32 NIL NIL) (225 288 NIL NIL)) Free result: (225 288 NIL NIL) Now try a request for size 16, should grab the small free one at the end Request 16 bytes: Request result: 577 Current memory map: Addr: 1, bytes 224, taken NIL Addr: 225, bytes 288, taken NIL Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken T Current free memory sections: 224 free bytes @addr 1 288 free bytes @addr 225 Raw tree structure: (1 224 NIL (225 288 NIL NIL)) Now try a request for size 256, should grab from the big 288 chunk Request 256 bytes: Request result: 225 Current memory map: Addr: 1, bytes 224, taken NIL Addr: 225, bytes 256, taken T Addr: 481, bytes 32, taken NIL Addr: 513, bytes 64, taken T Addr: 577, bytes 32, taken T Current free memory sections: 32 free bytes @addr 481 224 free bytes @addr 1 Raw tree structure: (1 224 (481 32 NIL NIL) NIL) ---------- Testing finished ----------