← Back to Patent Explorer
US6446257B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for pre-allocation of system resources to facilitate garbage collection

Assignee: Hewlett Packard Development Co LP
•
Filing: 1999-02-04
•
Granted: 2002-09-03
•
Expires: 2019-02-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A generational garbage collection tool and method for a computer system that pre-allocates computer resources during compile-time for later use by a generational garbage collector at run-time. The invention reduces the overall cost of dealing with long-lived objects and thereby allows a generational garbage collector to focus deallocation efforts on young objects, which are more likely to be dead. The present embodiment reduces pause time to a level that does not disturb interactive users. The embodiment allocates space for interior pointers at compile-time when the location of interior pointers is known and thereby facilitates generational garbage collection. By enabling the use of threaded interior pointers during generational garbage collection, live object relocation is improved by requiring an update to one pointer instead of updating each pointer that references an object. The present embodiment identifies the pointers that may be updated due to generational garbage collection, and by selectively allocating space to only those pointers that may be accessed during generational garbage collection and not all pointers, computer resources are saved. Further, the present embodiment may include locking information in the pointer to determine whether the object is presently being updated and is therefore locked.

Inventors

  • 👤 Salil Pradhan
  • 👤 Mark D. Hennecke
  • 👤 Michey N Mehta
  • 👤 Ruslan Meshenberg

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 12:48
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0253; G06F12/0269; G06F12/0276; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99956; Y10S707/99957

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 104 words
A collection tool, in a computer system having resources, an object, and a compilation system; said collection tool comprising: wherein said compilation system being operable during compile-time and during run-time; said object operating in association with said compilation system at said compile-time; and said object being generationally garbage collected in association with said compilation system at said run-time; an interior pointer referencing said object; and a portion of memory residing in said resources, said portion of memory being allocated for said interior pointer at said compile-time thereby facilitating said generational garbage collection of said object at said run-time by reference to said interior pointer.
Claim 2
Dependent Claim 104 words
A collection tool, in a computer system having resources, an object, and a compilation system; said collection tool comprising: wherein said compilation system being operable during compile-time and during run-time; said object operating in association with said compilation system at said compile-time; and said object being generationally garbage collected in association with said compilation system at said run-time; an interior pointer referencing said object; and a portion of memory residing in said resources, said portion of memory being allocated for said interior pointer at said compile-time thereby facilitating said generational garbage collection of said object at said run-time by reference to said interior pointer.
Claim 3
Dependent Claim 35 words
The collection tool as set forth in claim 1 , further comprising: wherein said computer system being operable for threading; and said object being threaded thereby facilitating said generational garbage collection of said threaded object.
Claim 4
Dependent Claim 100 words
The collection tool as set forth in claim 1 , further comprising: wherein said object having a plurality of instructions in a pre-defined order; a starting instruction being first in said pre-defined order; an interior instruction being after said first instruction in said pre-defined order and said object pointer referencing said interior instruction of said object; and an offset instruction representing a distance between said starting instruction and said interior instruction and said offset instruction being stored in said resources for said object pointer, thereby facilitating safe said generational garbage collection of said object by reference to said object pointer.
Claim 5
Dependent Claim 41 words
The collection tool as set forth in claim 1 further comprising; said resources being selectively allocated for said object pointer when said object pointer will be generationally garbage collected at said run-time thereby selectively using said resources of said computer system.
Claim 6
Dependent Claim 85 words
The collection tool as set forth in claim 1 , tool further comprising: wherein said object having a plurality of instructions in a pre-defined order; a first instruction being first in said pre-defined order and said object pointer referencing said first instruction; and an identification instruction representing said first instruction being referenced by said object pointer, and said identification instruction being stored in said resources for said object pointer, thereby facilitating safe said generational garbage collection of said object by reference to said object pointer.
Claim 7
Dependent Claim 42 words
The collection tool as set forth in claim 1 , wherein said object having a lock instruction that identifies said object as locked when said object is being generationally garbage collected, thereby said object is serially generationally garbage collected at said run-time.
Claim 8
Independent Claim 90 words
A method for pre-allocating resources in a computer system; said computer system having an object, and a compilation system; said method comprising: operating said object in association with said compilation system at a compile-time; executing and generationally garbage collecting said object in association with said compilation system at a run-time; referencing said object by an interior pointer; and allocating a portion of memory from said resources for said interior pointer at said compile-time thereby facilitating said generational garbage collection of said object at said run-time by referencing said interior pointer.
Claim 9
Independent Claim 90 words
A method for pre-allocating resources in a computer system; said computer system having an object, and a compilation system; said method comprising: operating said object in association with said compilation system at a compile-time; executing and generationally garbage collecting said object in association with said compilation system at a run-time; referencing said object by an interior pointer; and allocating a portion of memory from said resources for said interior pointer at said compile-time thereby facilitating said generational garbage collection of said object at said run-time by referencing said interior pointer.
Claim 10
Dependent Claim 32 words
The method as set forth in claim 7 , further comprising: operating said computer system with threading; and threading said object and thereby facilitating said generational garbage collection of said threaded object.
Claim 11
Dependent Claim 119 words
The method as set forth in claim 7 , said object having a plurality of instructions; said method further comprising: wherein said referencing said object by an object pointer step including: pre-defining an order for said instructions; referencing said instructions in said pre-defined order; initiating said referencing of said instructions at a first instruction; and continuing said referencing of said instructions at an interior instruction, said interior instruction being after said first instruction in said pre-defined order; and said object pointer referencing said interior instruction; and storing in said resources for said object pointer a distance between said first instruction and said interior instruction, thereby facilitating safe said generational garbage collection of said object by referencing said object pointer.
Claim 12
Dependent Claim 40 words
The method as set forth in claim 7 , further comprising; selectively allocating said resources for said object pointer when said object pointer will be generationally garbage collected at said run-time thereby selectively using said resources of said computer system.
Claim 13
Dependent Claim 90 words
The method as set forth in claim 7 , said object having a plurality of instructions; said method further comprising: wherein said referencing said object by an object pointer step including: pre-defining an order for said instructions; and initiating said referencing of said instructions at a first instruction, and said object pointer referencing said first instruction; and storing an identification of said object pointer with said first instruction in said resources for said object pointer, thereby facilitating safe said generational garbage collection of said object by referencing said object pointer.
Claim 14
Dependent Claim 32 words
The method as set forth in claim 7 , further comprising; locking said object when said object is being generationally garbage collected thereby serially generationally garbage collecting said object at said run-time.
Claim 15
Dependent Claim 136 words
An article of manufacture comprising a program storage medium having computer readable program code embodied therein for pre-allocating resources in a computer system; said computer system having computer readable program code for an object, and computer readable program code for a compilation system; said article of manufacture comprising: computer readable program code for operating said object in association with said compilation system at a compile-time; computer readable program code for executing and generationally garbage collecting said object in association with said compilation system at a run-time; computer readable program code for referencing said object by an interior pointer; and computer readable program code for allocating a portion of memory from said resources for said interior pointer at said compile-time thereby facilitating said generational garbage collection of said object at said run-time by referencing said interior pointer.
Claim 16
Dependent Claim 136 words
An article of manufacture comprising a program storage medium having computer readable program code embodied therein for pre-allocating resources in a computer system; said computer system having computer readable program code for an object, and computer readable program code for a compilation system; said article of manufacture comprising: computer readable program code for operating said object in association with said compilation system at a compile-time; computer readable program code for executing and generationally garbage collecting said object in association with said compilation system at a run-time; computer readable program code for referencing said object by an interior pointer; and computer readable program code for allocating a portion of memory from said resources for said interior pointer at said compile-time thereby facilitating said generational garbage collection of said object at said run-time by referencing said interior pointer.
Claim 17
Dependent Claim 141 words
The article of manufacture as set forth in claim 13 , said object having computer readable program code for a plurality of instructions; said article of manufacture further comprising: computer readable program code for pre-defining an order for said instructions; computer readable program code for referencing said instructions in said pre-defined order; computer readable program code for initiating said referencing of said instructions at a first instruction; computer readable program code for continuing said referencing of said instructions at an interior instruction, said interior instruction being after said first instruction in said pre-defined order; and said object pointer referencing said interior instruction; and computer readable program code for storing in said resources for said object pointer a distance between said first instruction and said interior instruction, thereby facilitating safe said generational garbage collection of said object by referencing said object pointer.
Claim 18
Dependent Claim 102 words
The article of manufacture as set forth in claim 13 , said object having computer readable program code for a plurality of instructions; said article of manufacture further comprising: computer readable program code for pre-defining an order for said instructions; computer readable program code for initiating said referencing of said instructions at a first instruction, and said object pointer referencing said first instruction; and computer readable program code for storing an identification of said object pointer with said first instruction in said resources for said object pointer, thereby facilitating safe said generational garbage collection of said object by referencing said object pointer.
Claim 19
Dependent Claim 117 words
A computer readable memory device encoded with a data structure having entries, for pre-allocating resources in a computer system having an object entry, and a compilation system entry; said memory device comprising: wherein said compilation system entry being operable during compile-time and during run-time; said object entry operating in association with said compilation system entry at said compile-time; and said object entry being generationally garbage collected in association with said compilation system entry at said run-time; an interior pointer entry referencing said object entry; and said resources being allocated for said interior pointer entry at said compile-time thereby facilitating said generational garbage collection of said object entry at said run-time by reference to said interior pointer entry.
Claim 20
Dependent Claim 117 words
A computer readable memory device encoded with a data structure having entries, for pre-allocating resources in a computer system having an object entry, and a compilation system entry; said memory device comprising: wherein said compilation system entry being operable during compile-time and during run-time; said object entry operating in association with said compilation system entry at said compile-time; and said object entry being generationally garbage collected in association with said compilation system entry at said run-time; an interior pointer entry referencing said object entry; and said resources being allocated for said interior pointer entry at said compile-time thereby facilitating said generational garbage collection of said object entry at said run-time by reference to said interior pointer entry.
Claim 21
Dependent Claim 117 words
The computer readable memory device as set forth in claim 16 , further comprising: wherein said object entry having a plurality of instruction entries in a pre-defined order; a starting instruction entry being first in said pre-defined order; an interior instruction entry being after said first instruction entry in said pre-defined order and said object pointer entry referencing said interior instruction entry of said object entry; and an offset instruction entry representing a distance between said starting instruction entry and said interior instruction entry and said offset instruction entry being stored in said resources for said object pointer entry, thereby facilitating safe said generational garbage collection of said object entry by reference to said object pointer entry.
Claim 22
Dependent Claim 98 words
The computer readable memory device as set forth in claim 16 , further comprising: wherein said object entry having a plurality of instruction entries in a pre-defined order; a first instruction entry being first in said pre-defined order and said object pointer entry referencing said first instruction entry; and an identification instruction entry representing said first instruction entry being referenced by said object pointer entry, and said identification instruction entry being stored in said resources for said object pointer entry, thereby facilitating safe said generational garbage collection of said object entry by reference to said object pointer entry.

References Cited (Backward Citations)

US4922414A Cited
US4558413A Cited
US4807120A Cited
US5535329A Cited
US5835701A Cited
US6206584B1 Cited
US5590332A Cited
US6151618A Cited
US5764989A Cited
US5987256A Cited
US5995754A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-09-02 2006-03-04 2006-09-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-09-02 2010-03-04 2010-09-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-09-02 2014-03-04 2014-09-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag