Preemptive memory-block splitting
OwnerSteven K. Heller, David L. Detlefs +1inventors
InventorsSteven K. Heller, David L. Detlefs, Ross C. Knippel
Life of this patent
Estimating the term…
Loading patent…
OwnerSteven K. Heller, David L. Detlefs +1inventors
InventorsSteven K. Heller, David L. Detlefs, Ross C. Knippel
Estimating the term…
A computer system (10) implements a memory allocator that employs a data structure (FIG. 3) to maintain an inventory of dynamically allocated memory available to receive new data. It receives from one or more programs requests that it allocate memory from a dynamically allocable memory “heap.” It responds to such requests by performing the requested allocation and removing the thus-allocated memory block from the inventory. Conversely, it adds to the inventory memory blocks that the supported program or programs request be freed. In the process, it monitors the frequencies with which memory blocks of various sizes are allocated, and it projects from those frequencies future-demand values for memory blocks of those sizes. It then splits larger blocks into smaller ones preemptively, i.e., before a request for the result of the splitting. To split a relatively large block preemptively in order to meet an expected request for a smaller block, it bases its selection of the larger block to be split on whether the supply of free blocks of that size is great enough to meet the expected demand for such blocks. It also splits blocks reactively, i.e., in response to a previously made request for a block that will result from the splitting operation.
For satisfying requests for dynamic allocation of blocks of a computer system's computer memory, a method that includes:
A storage medium containing instructions readable, by a computer system that makes allocation requests, to configure the computer system to operate as an allocator that:
A computer system that makes allocation requests, includes computer memory, and comprises:
A computer system that includes computer memory, makes allocation requests for dynamic allocation of blocks of a computer system's computer memory requests, and includes:
A computer signal representing sequences of instructions that, when executed by a computer system that makes allocation requests and includes computer memory, cause it to operate as an allocator that:
Dependencies are inferred from the claim text.