IP Library Granted Patent US 7,565,507
Granted Patent B2
US 7,565,507 · App. 11/894,434 · Granted Jul 21, 2009

Cooperative memory management allowing program request and release memory as needed

Assignee: Azul Systems, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,565,507
App. No.
11/894,434
Granted
Jul 21, 2009
Kind
B2
Abstract

A computer system includes a memory and a processor coupled with the memory, configured to assign to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory; and dynamically allocate an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool. Managing memory includes assigning to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory; and dynamically allocating an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool.

Claims (49)

1. A computer system comprising:

a memory; and

a processor coupled with the memory, configured to:

assign to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pooi including committed memory and uncommitted memory;

dynamically allocate an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool; and

determine a memory request urgency level associated with said one of the plurality of processes requiring the additional amount of memory.

2. The system recited in claim 1 , wherein the processor is further configured to divide the uncommitted memory into a plurality of subpools.

3. The system recited in claim 2 , wherein the processor is further configured to:

divide the uncommitted memory into a plurality of subpools;

return memory freed by a memory-freeing process to the memory pool, including by refilling a subpool from which the memory-freeing process had previously received memory.

4. The system recited in claim 2 , wherein the plurality of subpools includes a granted subpool.

5. The system recited in claim 2 , wherein the plurality of subpools includes a loaned subpool.

6. The system recited in claim 5 , wherein each of the loaned subpool requires a memory requesting process to have memory collateral.

7. The system recited in claim 1 , wherein the processor is further configured to maintain the memory pool, including by operating a memory manager.

8. The system recited in claim 7 , wherein the memory manager is configured to replenish free memory in the memory pool by sending a collection request.

9. The system recited in claim 1 , wherein the processor is configured to determine that said one of the plurality of processes requires the additional amount of memory.

10. The system recited in claim 1 , wherein the memory request urgency level corresponds to an out-of-memory request.

11. The system recited in claim 1 , wherein the memory request urgency level corresponds to a pause request.

12. The system recited in claim 1 , wherein the memory request urgency level corresponds to an efficiency request.

13. The system recited in claim 1 , wherein the processor is further configured to determine whether said one of the plurality of processes has any memory collateral.

14. The system recited in claim 1 , wherein the processor is further configured to return memory freed by a memory-freeing process to the memory pool.

15. A computer system comprising:

a memory: and

a processor coupled with the memory, configured to:

assign to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory: and

dynamically allocate an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool;

divide the uncommitted memory into a plurality of subpools; and

determine a memory request urgency level associated with said one of the plurality of processes requiring the additional amount of memory;

wherein the dynamic allocation of the additional amount of memory includes selecting, based at least in part on the memory request urgency level, an appropriate subpool from the plurality of subpools.

16. A method for managing memory, comprising:

assigning to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory;

dynamically allocating an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool; and

determining a memory request urgency level associated with said one of the plurality of processes requiring the additional amount of memory.

17. A method for managing memory, comprising:

assigning to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory;

dynamically allocating an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool;

dividing the uncommitted memory into a plurality of subpools; and

determining a memory request urgency level associated with said one of the plurality of processes requiring the additional amount of memory; wherein

dynamically allocating the additional amount of memory includes selecting, based at least in part on the memory request urgency level, an appropriate subpool from the plurality of subpools.

18. A computer program product for managing memory, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

assigning to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory;

dynamically allocating an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool; and

determining a memory request urgency level associated with said one of the plurality of processes requiring the additional amount of memory.

19. A computer program product for managing memory, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

assigning to each of a plurality of processes a corresponding amount of committed memory from a memory pool, the memory pool including committed memory and uncommitted memory;

dynamically allocating an additional amount of memory required by one of the plurality of processes from the uncommitted memory in the memory pool;

dividing the uncommitted memory into a plurality of subpools; and

determining a memory request urgency level associated with said one of the plurality of processes requiring the additional amount of memory; wherein

dynamically allocating the additional amount of memory includes selecting, based at least in part on the memory request urgency level, an appropriate subpool from the plurality of subpools.

Assignments (6)
RELEASE OF SECURITY INTERESTS IN PATENTS RECORDED AT REEL/FRAME 052293/0121 Recorded Dec 3, 2025
From: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
To: AZUL SYSTEMS, INC.
Reel/Frame 073466/0064 →
SECURITY INTEREST Recorded Apr 2, 2020
From: AZUL SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 052293/0121 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: AZUL SYSTEMS, INC.
Reel/Frame 052293/0869 →
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: AZUL SYSTEMS, INC.
Reel/Frame 048411/0138 →
SECURITY INTEREST Recorded Mar 1, 2016
From: AZUL SYSTEMS, INC.
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 037959/0694 →
SECURITY AGREEMENT Recorded Nov 18, 2009
From: AZUL SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 023538/0316 →
Continuity (2)
Continuation 1081647100 · Apr 1, 2004
Related Publication 20070294501A1 · Dec 20, 2007