Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
First Claim
1. A dynamic memory allocation procedure comprising the computer-implemented steps of:
- a. allocating areas of memory for use as a series of free buffer pools, each free buffer pool comprising plural identical size (hereafter called "buffer size") buffer storage areas, each succeeding free buffer pool of said series including a larger buffer size than a preceding free buffer pool of said series;
b. associating a selection size parameter with each free buffer pool, said selection size parameter for a given free buffer pool being a value larger than said buffer size comprising said given free buffer pool, but less than a next larger buffer size comprising a further one of said series of free buffer pools; and
c. responding to a request for allocation of buffer space byi. allocating a buffer from a free buffer pool whose selection size parameter is a larger value, among selection size parameters, than said buffer space that was requested;
ii. determining a difference between and the allocated buffer size and the requested buffer space to find an unfulfilled amount of said requested buffer space; and
iii. allocating a buffer from a free buffer pool whose selection size parameter is a larger value, among selection size parameters, than said unfulfilled amount; and
iv. repeating steps ii and iii until step ii determines that no unfulfilled amount remains of said requested buffer space.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus for dynamically allocating memory includes a processor, a free buffer pool memory and a control memory which stores control block data structures. The control block data structures enable a segmentation of the free buffer pool memory into a series of free buffer pools, each free buffer pool comprising plural identical size buffers, each succeeding free buffer pool including a larger buffer size than a preceding free buffer pool. A selection size parameter for a given free buffer pool is a value that is larger than the buffer size comprising the given free buffer pool, but less than a next larger buffer size in the next of the series of free buffer pools. A memory allocation procedure responds to a request from an executing procedure for allocation of buffer space by: (i) allocating a buffer from a free buffer pool memory whose associated selection size parameter is a next larger value than the buffer space that was requested; (ii) determining a difference between the allocated buffer size and the requested buffer space to find an unfulfilled amount of the requested buffer space; (iii) allocating a buffer from a free buffer pool memory whose selection size parameter is a next larger value, among selection size parameters, than the unfulfilled amount; and (iv) repeating ii and iii until the memory allocation procedure determines that there is no unfulfilled amount of the requested buffer space. The apparatus further includes "quickcell" memory which is allocated without use of control block data structures.
178 Citations
11 Claims
-
1. A dynamic memory allocation procedure comprising the computer-implemented steps of:
-
a. allocating areas of memory for use as a series of free buffer pools, each free buffer pool comprising plural identical size (hereafter called "buffer size") buffer storage areas, each succeeding free buffer pool of said series including a larger buffer size than a preceding free buffer pool of said series; b. associating a selection size parameter with each free buffer pool, said selection size parameter for a given free buffer pool being a value larger than said buffer size comprising said given free buffer pool, but less than a next larger buffer size comprising a further one of said series of free buffer pools; and c. responding to a request for allocation of buffer space by i. allocating a buffer from a free buffer pool whose selection size parameter is a larger value, among selection size parameters, than said buffer space that was requested; ii. determining a difference between and the allocated buffer size and the requested buffer space to find an unfulfilled amount of said requested buffer space; and iii. allocating a buffer from a free buffer pool whose selection size parameter is a larger value, among selection size parameters, than said unfulfilled amount; and iv. repeating steps ii and iii until step ii determines that no unfulfilled amount remains of said requested buffer space. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. Apparatus for dynamically allocating memory, comprising:
-
a processor; a free buffer pool memory; control memory storing buffer control block (BCB) data structures which enable segmentation of said free buffer pool memory into a series of free buffer pools, each free buffer pool comprising plural buffers of identical size (hereafter called "buffer size"), each succeeding free buffer pool of said series including a larger buffer size than a preceding free buffer pool of said series; memory means for storing a selection size parameter in association with each free buffer pool, said selection size parameter for a given free buffer pool being a value larger than said buffer size comprising said given free buffer pool, but less than a next larger buffer size comprising a further one of said series of free buffer pools; and a memory allocation procedure stored in said control memory and operational in combination with said processor, said BCB data structures and selection size parameters to respond to a request from an executing procedure for allocation of buffer space by; i. allocating a buffer from a free buffer pool in said free buffer pool memory whose associated selection size parameter is a larger value, among selection size parameters, than said buffer space that was requested; ii. determining a difference between the allocated buffer size and the requested buffer space to find an unfulfilled amount of said requested buffer space; iii. allocating a buffer from a free buffer pool in said free buffer pool memory whose selection size parameter is a larger value, among selection size parameters, than said unfulfilled amount; and iv. repeating ii and iii until said memory allocation procedure determines that there is no unfulfilled amount of said requested buffer space. - View Dependent Claims (8, 9, 10, 11)
-
Specification