Patent ID: 6907508

Claim:
In a digital data processing system having a memory component, a method for managing available resources in said memory, comprising: partitioning a first portion of said memory into n blocks; allocating m of said blocks as pointer blocks, each adapted to store at most s pointers, where (n>m), (n>s) and ((m*s)≧(n−m)); for each of said (n−m) blocks, creating a pointer which points to said block; storing of said pointers in each of the first (m−1) of said pointer blocks and storing the remaining ((n−m)−(m−1)*s)) of said pointers in the last of said pointer blocks, wherein the pointers stored in said pointer blocks comprise a free pointer list; in response to a first allocation request to allocate a first block, selecting for allocation the block pointed to by a first pointer in said pointer list, allocating said selected block as said first block, and removing said first pointer from said pointer list; and if, in response to said first allocation request, the last of said pointer blocks stores 0 pointers, then, in response to a second allocation request to allocate a second block, allocating said last pointer block as said second block; whereby a next one of said pointer blocks becomes said last pointer block.