System method and apparatus for providing linearly scalable dynamic memory management in a multiprocessing system
First Claim
Patent Images
1. In a computer system comprising an operating system, a plurality of application programs, and system memory, a method for allocating the system memory to the plurality of application programs, said method comprising the steps of:
- executing an executable instruction within a first application program of a plurality of application programs, such that the first application program accesses a heap data structure and a free list, wherein the heap data structure and the free list comprise a concurrent non-blocking queue;
executing an executable instruction within a second application program of the plurality of application programs, such that the second application program accesses the heap data structure and the free list, the second application program accessing the heap data structure and the free list concurrently with the first application program to request a respective request amount of system memory for allocation to the first and second application programs;
identifying, based on the heap data structure and the free list, available portions of system memory, each of the available portions comprising at least the respective requested amount of system memory for each of the first and the second application programs; and
allocating the respective requested amounts of system memory within the available portions to the first and the second application programs.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for dynamically allocating memory in a computer system at the application level. The application examines a heap data structure and a free list, identifies an unallocated region of memory that is appropriately sized, and allocates the memory to the application. The application deallocates a memory region by placing the memory region in the free list and modifying the heap data structure.
48 Citations
2 Claims
-
1. In a computer system comprising an operating system, a plurality of application programs, and system memory, a method for allocating the system memory to the plurality of application programs, said method comprising the steps of:
-
executing an executable instruction within a first application program of a plurality of application programs, such that the first application program accesses a heap data structure and a free list, wherein the heap data structure and the free list comprise a concurrent non-blocking queue;
executing an executable instruction within a second application program of the plurality of application programs, such that the second application program accesses the heap data structure and the free list, the second application program accessing the heap data structure and the free list concurrently with the first application program to request a respective request amount of system memory for allocation to the first and second application programs;
identifying, based on the heap data structure and the free list, available portions of system memory, each of the available portions comprising at least the respective requested amount of system memory for each of the first and the second application programs; and
allocating the respective requested amounts of system memory within the available portions to the first and the second application programs.
-
-
2. In a computer system comprising an operating system, a first application program and a second application program, and system memory, a system for allocating said system memory to the first and second application programs comprising:
-
a heap data structure for listing a size of at least one unallocated portion of the system memory;
a free list for listing at least one address of the at least one unallocated portion of the system memory, wherein the heap data structure and the free list comprise a concurrent non-blocking queue; and
an executive instruction within the first and second application programs for accessing the free list and the heap data structure by the first and the second application programs, wherein the first application program accesses the free list and the heap data structure concurrently with the second application program to request a respective requested amount of the system memory for allocation to the first and second application programs.
-
Specification