Implementation - version 1
free is O(log n)
(same as previous implementation)
alloc is O(log n)
(was O(n))
failed alloc is O(log n)
(was O(n) for large value of n)
i386 had 2 free-space trees:
one for executable mappings
one for non-executable mappings