IP Library Granted Patent US 7,797,508
Granted Patent B2
US 7,797,508 · App. 11/831,111 · Granted Sep 14, 2010

Fair memory resource control for mapped memory

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,797,508
App. No.
11/831,111
Granted
Sep 14, 2010
Kind
B2
Abstract

A method, system and computer program product for managing memory allocation among plural virtual application environments supported by a common operating system. The technique may include establishing a mapping between a virtual application environment (or processes therein) and a mapping proxy that is reachable via a reverse mapping pathway adapted to facilitate identification of virtual addresses associated with a memory page frame. The virtual application environment (or processes therein) may be identified as an allocation recipient of the memory page frame by traversing the reversing mapping pathway to the mapping proxy. The memory page frame may be reclaimed for allocation to another virtual application environment by invalidating data therein or transferring the data to a storage resource based upon memory usage by the identified virtual application environment.

Claims (40)

1. A method for managing memory allocation among plural virtual application environments supported by a common operating system, comprising:

establishing a mapping between a virtual application environment (or processes therein) and a mapping proxy that is reachable via a reverse mapping pathway adapted to facilitate identification of virtual addresses associated with a memory page frame;

identifying said virtual application environment (or processes therein) as an allocation recipient of said memory page frame by traversing said reversing mapping pathway to said mapping proxy; and

reclaiming said memory page frame for allocation to another virtual application environment by invalidating data therein or transferring said data to a storage resource based upon memory usage by said identified virtual application environment.

2. A method in accordance with claim 1 , wherein said mapping proxy comprises a memory management entity that contains information for a process address space.

3. A method in accordance with claim 1 , wherein said mapping proxy comprises a single mapping to said virtual application environment.

4. A method in accordance with claim 3 , wherein said single mapping comprises a link between said mapping proxy and a resource accounting entity associated with said virtual application environment.

5. A method in accordance with claim 1 , wherein said mapping proxy comprises plural mappings to individual processes in said virtual application environment.

6. A method in accordance with claim 1 , wherein said reclaiming is conditioned upon said identified virtual application environment exceeding a memory resource limit or being allocated less than a memory resource minimum guarantee.

7. A system for managing memory allocation among plural virtual application environments supported by a common operating system, comprising: logic implementing hardware;

a memory;

a mapping proxy in said memory comprising a mapping to a virtual application environment (or to processes therein);

said mapping proxy being reachable via a reverse mapping pathway adapted to facilitate identification of virtual addresses associated with said memory page frame;

identification logic implemented by said logic implementing hardware and adapted to identify said virtual application environment (or processes therein) as an allocation recipient of said memory page frame by traversing said reversing mapping pathway to said mapping proxy; and

reclamation logic implemented by said logic implementing hardware and adapted to reclaim said memory page frame for allocation to another virtual application environment by invalidating data therein or transferring said data to a storage resource based upon memory usage by said identified virtual application environment.

8. A system in accordance with claim 7 , wherein said mapping proxy comprises a memory management entity that contains information for a process address space.

9. A system in accordance with claim 7 , wherein said mapping proxy comprises a single mapping to said virtual application environment.

10. A system in accordance with claim 9 , wherein said single mapping comprises a link between said mapping proxy and a resource accounting entity in said memory associated with said virtual application environment.

11. A system in accordance with claim 7 , wherein said mapping proxy comprises plural mappings to individual processes in said virtual application environment.

12. A system in accordance with claim 7 , wherein said reclamation logic is adapted to condition said memory page frame reclamation upon said identified virtual application environment exceeding a memory resource limit or being allocated less than a memory resource minimum guarantee.

13. A computer program product, comprising:

one or more computer useable media;

means associated with said computer useable media for programming a data processing platform to manage memory allocation among plural virtual application environments supported by a common operating system, as by:

establishing a mapping between a virtual application environment (or processes therein) and a mapping proxy that is reachable via a reverse mapping pathway adapted to facilitate identification of virtual addresses associated with a memory page frame;

identifying said virtual application environment (or processes therein) as an allocation recipient of said memory page frame by traversing said reversing mapping pathway from said page frame control structure to said mapping proxy; and

reclaiming said memory page frame for allocation to another virtual application environment by invalidating data therein or transferring said data to a storage resource based upon memory usage by said identified virtual application environment.

14. A computer program product in accordance with claim 13 , wherein said mapping proxy comprises a memory management entity that contains information for a process address space.

15. A computer program product in accordance with claim 13 , wherein said mapping proxy comprises a single mapping to said virtual application environment.

16. A computer program product in accordance with claim 15 , wherein said single mapping comprises a link between said mapping proxy and a resource accounting entity associated with said virtual application environment.

17. A computer program product in accordance with claim 13 , wherein said mapping proxy comprises plural mappings to individual processes in said virtual application environment.

18. A computer program product in accordance with claim 13 , wherein said reclaiming is conditioned upon said identified virtual application environment exceeding a memory resource limit or being allocated less than a memory resource minimum guarantee.

19. A computer program product, comprising:

one or more computer useable media;

means associated with said computer useable media for programming a data processing platform to manage memory allocation among plural virtual application environments supported by a common operating system, as by:

establishing a mapping between a virtual application environment (or processes therein) and a memory management entity that contains information for a process address space of a process in said virtual application environment;

said memory management entity being reachable from a page frame control structure via a reverse mapping pathway adapted to facilitate identification of virtual addresses associated with a memory page frame represented by said page frame control structure;

said reverse mapping pathway including one or more virtual memory area entities or anonymous memory entities that are linked to said memory management entity;

identifying said virtual application environment (or processes therein) as an allocation recipient of said memory page frame by traversing said reversing mapping pathway from said page frame control structure to said memory management entity; and

reclaiming said memory page frame for allocation to another virtual application environment by invalidating data therein or transferring said data to a storage resource based upon memory usage by said identified virtual application environment.

20. A computer program product in accordance with claim 19 , wherein said memory management entity comprises one or both of a single mapping to said virtual application environment or plural mappings to individual processes in said virtual application environment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: LINKEDIN CORPORATION
Reel/Frame 035201/0479 →