System and method for maintaining an association for an object

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

06219678

ABSTRACT:

BACKGROUND OF THE INVENTION
The present invention is directed to object-oriented programming systems, and more particularly to optimizing the representation of associations in object-oriented programming systems.
Conventional object-oriented programming systems often record the association between a particular object and another object or a data structure internal to the system. Frequently, however, the demographics (e.g., usage pattern) of such associations cannot be predicted with accuracy ahead of time. Whether a particular object participates in an association depends upon the activities of the applications hosted by the system.
An example of one conventional object-oriented programming system that uses associations is Sun Microsystems™ Java™ object-oriented programming language. Java and Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Most implementations of the Java programming language associate a secondary structure with an object in the event that a synchronized method (i.e., a method whose invocation is synchronized on its receiver) is invoked on that object. This secondary structure is called a monitor and engages a variety of mechanisms in the Java™ runtime system and the native platform for the purpose of coordinating concurrent execution of synchronized methods. For efficiency reasons, the monitor is typically allocated for and associated with an object only if a synchronized method is invoked upon that object. Unfortunately, such a determination can only be made at the actual point of method invocation.
Two conventional approaches exist for recording associations. The first approach stores the association, which takes the form of a reference to the monitor, in a separate data structure, such as a hash table. This approach economizes the use of space because space in the hash table need not be allocated until actually required to record an association, but imposes a run-time penalty in the form of the time required to search the hash table for the location of the association.
The second approach alleviates this run-time penalty by storing the association in the header of the object in memory. The object header is an area of memory of fixed size that prefixes every object. Storing the association in the object header considerably increases the speed of retrieval of the association because the association is available directly from the object. However, given that the association demographics cannot be predicted ahead of time, a conservative approach would require that every object be provided with space for the storage of an association. This leads to a considerable waste of valuable memory space.
Therefore, a need exists for a way to record associations while alleviating the problems of the two conventional approaches.
SUMMARY OF THE INVENTION
Systems and methods consistent with the present invention address this need by temporarily storing associations in a table until invocation of the next automatic memory management function, such as garbage collection, at which time the memory management function stores the associations in the objects. The systems and methods consistent with the present invention take advantage of the automatic memory management function to add or remove space in the objects for the storage of associations.
A system consistent with the present invention optimizes representation of associations in an object-oriented programming environment. The system includes a memory and a memory manager. The memory stores a table and a plurality of objects. Each of the objects includes a header that stores a flag. The table stores a plurality of entries. Each of the table entries stores an association and a reference identifying one of the objects in the memory.
The memory manager periodically determines the state of the flags in the object headers. When the flag of an object is determined to be in a predetermined state, the memory manager selects the table entry having a reference identifying the object and stores the association from the selected table entry into the object.


REFERENCES:
patent: 5241673 (1993-08-01), Schelvis
patent: 5485613 (1996-01-01), Engelstad et al.
patent: 5659751 (1997-08-01), Heninger
patent: 5930807 (1999-07-01), Ebrahim et al.
patent: 6098080 (2000-08-01), Endicott et al.
“The Case for Java as a Programming Language,” Van Hoff, A. IEEE Internet Compuitng, Jan.-Feb. 1997, vol. 1, issue 1, pp. 51-56.*
Jaworski, “Java 1.1 Developer's Guide,” 2nd Ed., 1997, Sams.net Publishing.
T. Lindholm et al., “The Java Virtual Machine Specification,” Addison Wesley, 1996.
R. Jones et al., “Garbage Collection, Algorithms For Automatic Dynamic Memory Management,” 1996.

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

System and method for maintaining an association for an object does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with System and method for maintaining an association for an object, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and System and method for maintaining an association for an object will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2525624

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