Managing memory in a computer system

US10909029B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10909029-B2
Application numberUS-201916394047-A
CountryUS
Kind codeB2
Filing dateApr 25, 2019
Priority dateMay 15, 2012
Publication dateFeb 2, 2021
Grant dateFeb 2, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Methods, computer program products, and systems for managing memory in a computer system in which memory locations in use at any given time are represented as a set of memory objects in a first object graph. The first object graph includes a system root object associated by references to each of the memory objects. A method includes creating a second root object for the memory to form a second object graph for the memory. The method also includes, in response to the dereferencing of a first object from the first object graph, associating the dereferenced first object with the second object graph so that the second object graph includes at least one dereferenced object.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for managing memory in a computer system, the method comprising: identifying one or more candidate objects in a dereferenced object graph, the one or more candidate objects being connected objects in the dereferenced object graph that are not marked as being live; extracting dead object data from the one or more candidate objects; storing the extracted dead object data; and removing, after extracting the dead object data from the one or more candidate objects, the one or more candidate objects from memory. 2. The method of claim 1 , the method further comprising: traversing a system root object graph associated with a program; and marking a set of objects in the system root object graph as live, the set of objects being objects that are connected to a system root object, wherein an object is considered live if it is in use by the program. 3. The method of claim 2 , wherein the identifying one or more candidate objects in the dereferenced object graph comprises: traversing the dereferenced object graph to identify one or more dereferenced objects that are not marked as live. 4. The method of claim 3 , the method further comprising: identifying one or more dereferenced objects in the dereferenced object graph that are marked as live; identifying metadata objects associated with the one or more live dereferenced objects; marking the metadata objects as live; and returning, after removing the one or more candidate objects from memory, memory allocations of the one or more candidate objects to a heap. 5. The method of claim 4 , wherein the candidate objects do not include metadata objects, and wherein the metadata objects include dead information objects and field definition objects. 6. The method of claim 1 , wherein the dead object data for a candidate object includes an object identifier that identifies the candidate object, an identification of a parent object of the candidate object, and referencing field data that identifies a field in the parent object that referenced the candidate object. 7. The method of claim 1 , the method further comprising: providing, by a memory manager, memory allocations from a first heap and a second heap, the first heap including storages for connected objects, the second heap including storage for a dead root object and metadata objects; creating, in response to dereferencing an object in the first heap, a corresponding set of metadata objects in the second heap, the corresponding set of metadata objects including a cross-heap reference to the dereferenced object in the first heap. 8. A system for managing memory, the system comprising: a memory, wherein memory locations in the memory that are in use at any given time are represented as a set of memory objects in a system root object graph, the system root object graph including a system root object associated by references to each of the memory objects; and a processor configured to perform a method comprising: identifying one or more candidate objects in a dereferenced object graph, the one or more candidate objects being connected objects in the dereferenced object graph that are not marked as being live; extracting dead object data from the one or more candidate objects; storing the extracted dead object data; and removing, after extracting the dead object data from the one or more candidate objects, the one or more candidate objects from memory. 9. The system of claim 8 , the method further comprising: traversing a system root object graph associated with a program; and marking a set of objects in the system root object graph as live, the set of objects being objects that are connected to a system root object, wherein an object is considered live if it is in use by the program. 10. The system of claim 9 , wherein the identifying one or more candidate objects in the dereferenced object graph comprises: traversing the dereferenced object graph to identify one or more dereferenced objects that are not marked as live. 11. The system of claim 10 , the method further comprising: identifying one or more dereferenced objects in the dereferenced object graph that are marked as live; identifying metadata objects associated with the one or more live dereferenced objects; marking the metadata objects as live; and returning, after removing the one or more candidate objects from memory, memory allocations of the one or more candidate objects to a heap. 12. The system of claim 11 , wherein the candidate objects do not include metadata objects, and wherein the metadata objects include dead information objects and field definition objects. 13. The system of claim 8 , wherein the dead object data for a candidate object includes an object identifier that identifies the candidate object, an identification of a parent object of the candidate object, and referencing field data that identifies a field in the parent object that referenced the candidate object. 14. The system of claim 8 , the method further comprising: providing, by a memory manager, memory allocations from a first heap and a second heap, the first heap including storages for connected objects, the second heap including storage for a dead root object and metadata objects; creating, in response to dereferencing an object in the first heap, a corresponding set of metadata objects in the second heap, the corresponding set of metadata objects including a cross-heap reference to the dereferenced object in the first heap. 15. A computer program product comprising a computer readable storage medium having program code embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program code executable by a processor to cause the processor to perform a method comprising: identifying one or more candidate objects in a dereferenced object graph, the one or more candidate objects being connected objects in the dereferenced object graph that are not marked as being live; extracting dead object data from the one or more candidate objects; storing the extracted dead object data; and removing, after extracting the dead object data from the one or more candidate objects, the one or more candidate objects from memory. 16. The computer program product of claim 15 , the method further comprising: traversing a system root object graph associated with a program; and marking a set of objects in the system root object graph as live, the set of objects being objects that are connected to a system root object, wherein an object is considered live if it is in use by the program. 17. The computer program product of claim 16 , wherein the identifying one or more candidate objects in the dereferenced object graph comprises: traversing the dereferenced object graph to identify one or more dereferenced objects that are not marked as live. 18. The computer program product of claim 17 , the method further comprising: identifying one or more dereferenced objects in the dereferenced object graph that are marked as live; identifying metadata objects associated with the one or more live dereferenced objects; marking the metadata objects as live; and returning, after removing the one or more candidate objects from memory, memory allocations of the one or more candidate objects to a heap. 19. The computer program product of claim 18 , wherein the candidate objects do not include metadata objects, and wherein the metadata objects include dead information objects and field definition objects. 2

Assignees

Inventors

Classifications

  • Garbage collection, i.e. reclamation of unreferenced memory · CPC title

  • Indexing; Data structures therefor; Storage structures (for retrieval from the web G06F16/951) · CPC title

  • G06F12/00Primary

    Accessing, addressing or allocating within memory systems or architectures (digital input from, or digital output to record carriers, e.g. to disk storage units, G06F3/06) · CPC title

  • Space efficiency improvement · CPC title

  • Free address space management · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10909029B2 cover?
Methods, computer program products, and systems for managing memory in a computer system in which memory locations in use at any given time are represented as a set of memory objects in a first object graph. The first object graph includes a system root object associated by references to each of the memory objects. A method includes creating a second root object for the memory to form a second …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0253. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).