Method and apparatus for storing long-lived objects in a...

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C707S793000

Reexamination Certificate

active

06681234

ABSTRACT:

BACKGROUND
1. Field of the Invention
The present invention relates to objects defined within an object-oriented computer programming system. More specifically, the present invention relates to a method and apparatus for storing long-lived objects within an object-oriented computer programming system.
2. Related Art
The recent proliferation of ever smaller and more capable computing devices has lead to the use of platform-independent programming languages on these smaller devices. Platform-independent programming languages facilitate the creation of programs that can be compiled to a set of platform-independent codes, which can be executed on a variety of computing devices. Many of these computing devices have a virtual machine (VM) containing an interpreter or just-in-time compiler to execute these platform-independent codes. The JAVA™ programming language is an example of a platform-independent programming language and JAVA bytecodes are an example of platform-independent codes.
The terms JAVA, JVM and JAVA VIRTUAL MACHINE are registered trademarks of SUN Microsystems, Inc. of Palo Alto, Calif.
Many VMs use an area of memory called a heap to store various objects. When an object in the heap is no longer needed, all references pointing to the object will have been deleted. However, the object continues to occupy space in the heap. In some VMs, a computer program called a garbage collector scans the heap and deletes objects that are not being referenced in order to reclaim unused space in the heap.
There are many implementations of garbage collectors, however, they all share some traits. Garbage collectors require resources of the computing device in order to operate, thereby using storage space and slowing execution times of running programs. There have been many attempts to reduce the impact of garbage collection on executing programs. For instance, a garbage collector can be run in a separate execution thread. If the computing device has more than one processor, the separate execution thread can run on another processor, thereby reducing the impact on the main execution thread.
Another attempt to reduce the impact of garbage collection involves the use of so called “generational garbage collectors.” These work by migrating long-lived objects to an area of the heap where garbage collection is performed less often.
Neither of these techniques, however, is well suited for small computing devices. Small computing devices have only one processor, therefore running a separate garbage collection thread causes the main program thread to be “swapped out” during garbage collection. Furthermore, generational garbage collectors require large amounts of storage space, which may not be available on a small computing device.
Moreover, during initialization, many VMs generate a large number of objects that will remain active during the lifetime of the VM. For example, the JAVA runtime environment creates a large number of java.lang.String objects, which remain available for the duration of the program. These objects occupy a considerable portion of the heap and, as a result, cause the garbage collector to consume a considerable amount of processor time, even though these objects are never removed by the garbage collector.
What is needed is a system that eliminates the waste of resources caused by the garbage collector operating on objects that will never be deleted.
SUMMARY
One embodiment of the present invention provides a system for storing long-lived objects defined within an object-oriented programming system. These long-lived objects are created in a virtual machine used for executing platform-independent code and are ordinarily created during initialization of the virtual machine. The system works by allocating a storage area reserved for long-lived objects that is not subject to garbage collection. After the storage area is allocated, the system receives requests to create an object. The system then determines if the object is a long-lived object by referring to a table of long-lived objects. If the object is a long-lived object, it is created and placed in the reserved storage area.
In one embodiment of the present invention, the reserved storage area is an area of a heap used by the virtual machine.
In one embodiment of the present invention, the remainder of the heap is subject to garbage collection.
In one embodiment of the present invention, the long-lived object is a persistent string object.
In one embodiment of the present invention, the persistent string object is a java.lang.String object.
In one embodiment of the present invention, the system closes the reserved storage area to new objects when initialization of the virtual machine is complete.
In one embodiment of the present invention, the system allows a garbage collector to reclaim unused storage in the reserved storage area one time just prior to closing the storage area.
In one embodiment of the present invention, the virtual machine is a JAVA VIRTUAL MACHINE.


REFERENCES:
patent: 5136706 (1992-08-01), Courts
patent: 5911076 (1999-06-01), Acker et al.
patent: 6125434 (2000-09-01), Willard et al.
patent: 6141792 (2000-10-01), Acker et al.
patent: 6167564 (2000-12-01), Fontana et al.
patent: 6178545 (2001-01-01), Nagashima et al.
patent: 6199195 (2001-03-01), Goodwin et al.
patent: 6434575 (2002-08-01), Berry et al.
patent: 6446257 (2002-09-01), Pradhan et al.
patent: 6457111 (2002-09-01), Howard et al.
patent: WO 00/00885 (2000-01-01), None
Yuping Ding; Xining Li Titled “Cache performance of chronological garbage collection” IEEE Canadian Conference on, vol: 1, May 24-28, 1998 pp(s) 1-4 vol. 1.*
Publication entitled “Garbage Collection of Strings and Linked Data Structures in Real Time”, By K. Nilsen, The University of Arizona, XP-000002201, Software Practice & Experience, No. 7, Jul. 1988, pp. 613-640.
Publication entitled “Fast Allocation and Deallocation of Memory Based on Object Lifetimes”, By David R. Hanson, Princeton University, XP-000095792, Software Practice & Experience, vol. 20, Jan. 1990, pp. 5-12.
Publication entitled “Tenuring Policies for Generation-Based Storage Reclamation”, By David Ungar et al., Stanford University , XP-000299812, 1998, ACM, pp. 1-17.
Publication entitled “Distinguishing Between Prolific and Non-Proflific Types for Efficient Memory Management”, By Yefim Shuf et al., IBM T.J. Watson Research Center, Princeton University, XP-002212206, Published May 4, 2001, pp. 1-13.
Publication entitled “Distributed Garbage Collection for the Parallel Inference Machine Pie64”, By Lu Xu et al., University of Tokyo, Xp-000079027, Information Processing 89, Elsevier Science Publishers, 1989, pp. 1161-1166.
Publication entitled “Using Lifetime Predictors to Improve Memory Allocation ”, By David A. Barrett et al., University of Colorado XP-002212138, ACM, 1983, pp. 187-196.
Publication entitled “A Real-Time Garbage Collector Based on the Lifetimes of Objects”, By Henry Lieberman et al., MIT Artificial Intelligence Laboratory, XP-002118650, 8070 Communications of the Association of Computing Machinery, vol. 26, Jun. 1983, No. 6, New York, pp. 419-429.
Publication entitled “Generational Stack Collection and Profile-Driven Pretenuring”, By Perry Cheng et al., Carnegie Mellon University, XP-000766268, 1998, ACM, pp. 162-172.
Publication entitled “Generational Garbage Collection”, XP-002141155, Published 1996, pp. 143-163.
Publication entitled “Uniprocessor Garbage Collection Techniques”, By Paul R. Wilson, University of Texas, XP-002115784, Published 1992, pp. 1-42.

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for storing long-lived objects in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for storing long-lived objects in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for storing long-lived objects in a... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3242218

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.