Claims
- 1. A method of managing memory for a plurality of objects, comprising the computer-implemented steps of:allocating the objects in a first memory area; migrating some of the objects from the first memory area to a second memory area based on respective lifetimes of said some of the objects; and maintaining a data structure about which second objects in the second memory area reference first objects in the first memory area by: determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on first information contained within a first reference to a first object and second information contained within a second reference to a second object, without dereferencing either the first reference or the second reference; wherein either of the first memory area and the second memory area includes a respective plurality of noncontiguous pages.
- 2. The method of claim 1, wherein the step of determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on a first reference to a first object and a second reference to a second object, without dereferencing a memory pointer, includes the steps of:extracting first one or more bits of the first reference, said first one or more bits being less significant than bits for storing an address of the first object; extracting second one or more bits of the second reference, said second one or more bits being less significant than bits for storing an address of the first object; and determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits.
- 3. The method of claim 2, wherein the step of determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits includes the step of comparing on the first one or more bits and the second one or more bits for a prescribed inequality.
- 4. The method of claim 2, wherein: the step extracting first one or more bits of the first reference includes the step of extracting the one or more least significant bits of the first reference; and the step extracting second one or more bits of the first reference includes the step of extracting the one or more least significant bits of the second reference.
- 5. A computer-readable medium bearing instructions for managing memory for a plurality of objects, said instructions being arranged, when executed, to cause one or more processors to perform the steps of:allocating the objects in a first memory area; migrating some of the objects from the first memory area to a second memory area based on respective lifetimes of said some of the objects; and maintaining a data structure about which second objects in the second memory area reference first objects in the first memory area by: determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on first information contained within a first reference to a first object and second information contained within a second reference to a second object, without dereferencing either the first reference or the second reference; wherein either of the first memory area and the second memory area includes a respective plurality of noncontiguous pages.
- 6. The computer-readable medium of claim 5, wherein the step of determining whether a first object is allocated in the first memory area and a second object is allocated in the second memory area based on a first reference to a first object and a second reference to a second object, without dereferencing a memory pointer, includes the steps of:extracting first one or more bits of the first reference, said first one or more bits being less significant than bits for storing an address of the first object; extracting second one or more bits of the second reference, said second one or more bits being less significant than bits for storing an address of the first object; and determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits.
- 7. The computer-readable medium of claim 6, wherein the step of determining whether the first object is allocated in the first memory area and the second object is allocated in the second memory area based on the first one or more bits and the second one or more bits includes the step of comparing on the first one or more bits and the second one or more bits for a prescribed inequality.
- 8. The computer-readable medium of claim 6, wherein: the step extracting first one or more bits of the first reference includes the step of extracting the one or more least significant bits of the first reference; and the step extracting second one or more bits of the first reference includes the step of extracting the one or more least significant bits of the second reference.
RELATED APPLICATIONS
The present application is related to the following applications:
U.S. patent application Ser. No. 09/248,291, entitled “A Machine Independent Memory Management System Within a Run-Time Environment,” filed on even date herewith by Harlan Sexton et al., the contents of which are hereby incorporated by reference.
U.S. patent application Ser. No. 09/248,294, entitled “Address Calculation of Invariant References Within a Run-Time Environment,” filed on even date herewith by Harlan Sexton et al., the contents of which are hereby incorporated by reference.
U.S. patent application Ser. No. 09/248,297, entitled “A Paged Memory Management System Within a Run-Time Environment,” filed on even date herewith by Harlan Sexton et al., the contents of which are hereby incorporated by reference.
US Referenced Citations (8)
Foreign Referenced Citations (3)
Number |
Date |
Country |
0 700 000 |
Mar 1996 |
EP |
0 874 309 |
Oct 1998 |
EP |
2 239 335 |
Sep 1990 |
GB |
Non-Patent Literature Citations (7)
Entry |
www.ddj.com/articles/1998/9810/9810a/9810a.htm, Alexandre Petit-Bianco, “Java Garbage Collecton for Real-Time Systems”.* |
Pointer Swizzling at Page Fault Time: Efficiently Supporting Huge Address Spaces on Standard Hardware—Jun. 1991 No. 4—pp. 6-13. |
Working with Persistant Objects: to Swizzle or Not to Swizzle—pp. 657-673. |
XP-002141155—Generational Garbage Collection pp. 143-163. |
XP-002141152—Introduction pp. 1-38. |
XP-002141153—A Real-Time Garbage Collector Based on the Lifetimes of Objects—vol. 26 No. 6. |
XP-002141154—Oracle8i Java Developer's Guide—pp. 1-17. |