An embodiment of the present invention is a memory management system. A storage device is organized into at least one file comprising numbered data frames of stored data for swapping into a memory. Each frame contains storage blocks of space. A memory is connected to the storage device and comprises a cache comprising numbered pages for storing swapped frames and a page list heads list comprising at least one list head entry. Each numbered page contains data frames that contain memory blocks for data storage or header frames that contain frame meta data. Each such list head entry stores a page number identifying a first of the numbered pages that contains free memory blocks of a given block size. A processor is connected to the memory and comprises means for allocating the one memory block responsive to a memory request by looking up the numbered page identified by the page number stored in the one list head entry.