Frameworks for implementation of java heaps

Electrical computers and digital processing systems: memory – Storage accessing and control – Memory configuring

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S170000, C711S172000, C711S173000, C709S241000, C709S241000, C717S162000

Reexamination Certificate

active

06754796

ABSTRACT:

BACKGROUND OF THE INVENTION
The present invention relates generally to Java programming environments, and more particularly, to techniques suitable for implementation of Java heaps.
One of the goals of high level languages is to provide a portable programming environment such that the computer programs may easily be ported to another computer platform. High level languages such as “C” provide a level of abstraction from the underlying computer architecture and their success is well evidenced from the fact that most computer applications are now written in a high level language.
Portability has been taken to new heights with the advent of the World Wide Web (“the Web”) which is an interface protocol for the Internet that allows communication between diverse computer platforms through a graphical interface. Computers communicating over the Web are able to download and execute small applications called applets. Given that applets may be executed on a diverse assortment of computer platforms, the applets are typically executed by a Java™ virtual machine.
Recently, Java programming environment has become quite popular. Java programming language is a language that is designed to be portable enough to be executed on a wide range of computers ranging from small devices (e.g., pagers, cell phones and smart cards) up to supercomputers. Computer programs written in the Java programming language (and other languages) may be compiled into Java Bytecode instructions that are suitable for execution by a Java virtual machine implementation. The Java virtual machine is commonly implemented in software by means of an interpreter for the Java virtual machine instruction set but, in general, may be software, hardware, or both. A particular Java virtual machine implementation and corresponding support libraries together constitute a Java runtime environment.
Computer programs in the Java programming language are arranged in one or more classes or interfaces (referred to herein jointly as classes or class files). Such programs are generally platform, i.e., hardware and operating system, independent. As such, these computer programs may be executed without modification on any computer that is able to run an implementation of the Java runtime environment.
Object-oriented classes written in the Java programming language are compiled to a particular binary format called the “class file format.” The class file includes various components associated with a single class. These components can be, for example, methods and/or interfaces associated with the class. In addition, the class file format can include a significant amount of ancillary information that is associated with the class. The class file format (as well as the general operation of the Java virtual machine) is described in some detail in
The Java Virtual Machine Specification. Second Edition
, by Tim Lindholm and Frank Yellin, which is hereby incorporated herein by reference.
FIG. 1A
shows a progression of a simple piece of a Java source code
101
through execution by an interpreter, the Java virtual machine. The Java source code
101
includes the classic Hello World program written in Java. The source code is then input into a Bytecode compiler
103
that compiles the source code into Bytecodes. The Bytecodes are virtual machine instructions as they will be executed by a software emulated computer. Typically, virtual machine instructions are generic (i.e., not designed for any specific microprocessor or computer architecture) but this is not required. The Bytecode compiler outputs a Java class file
105
that includes the Bytecodes for the Java program. The Java class file is input into a Java virtual machine
107
. The Java virtual machine is an interpreter that decodes and executes the Bytecodes in the Java class file. The Java virtual machine is an interpreter, but is commonly referred to as a virtual machine as it emulates a microprocessor or computer architecture in software (e.g., the microprocessor or computer architecture may not exist in hardware).
FIG. 1B
illustrates a simplified class file
100
. As shown in
FIG. 1B
, the class file
100
includes a constant pool
102
portion, interfaces portion
104
, fields portion
106
, methods portion
108
, and attributes portion
110
. The methods portion
108
can include or have references to several Java methods associated with the Java class which is represented in the class file
100
.
Conventionally, various components of the Java computing environment are stored in a Java heap. These components include Java class representations and Java objects, as well as other logical components of the Java computing environment (e.g., native language components). One problem with conventional implementation of Java heaps if that various components can be intermixed together in the Java heap. As a result, a significant amount of processing has to be performed to access various components in the Java heap, maintain the Java heap, and so forth. This, of course, can result in a grossly inefficient use of system resources. In some circumstances, particularly in systems with limited computing power and/or memory, this inefficient use of resources is a serious disadvantage.
In addition, it is highly desirable to dynamically manage Java heaps (e.g., expand the heap in case more memory is needed). This is particularly useful in systems with relatively limited resources, partly because large amounts of memory cannot be reserved regardless of whether the allocated memory will be used or not. Accordingly, improved techniques for implementation of Java heaps are needed.
SUMMARY OF THE INVENTION
Broadly speaking, the invention relates to techniques for implementation of Java heaps. As such, the invention can be implemented in a Java virtual machine operating in a Java computing environment. In accordance with one aspect of the invention, a Java heap potion comprising two or more designated portions is disclosed. Each of the designated heap portions can be designated to store only a particular Java logical component (e.g., Java objects, Java class representation, native components, etc.) As will be appreciated, a designated heap portion can be implemented as a memory pool. In other words, two or more designated heap portions can collectively represent a memory pool designated for a particular Java logical component. The memory pools allow for dynamic management of the designated heap portions. As a result, the performance of the virtual machines, especially those operating with relatively limited resources is improved.
The invention can be implemented in numerous ways, including as a method, an apparatus, a computer readable medium, and a database system. Several embodiments of the invention are discussed below.
As a Java computing environment including a Java heap memory, the Java heap memory includes two or more designated portions, wherein each of the designated portions are designated for storing a logical component of the Java computing environment, and wherein each of the designated portions stores only the logical component that is designated to it.
As a Java virtual machine operating in a Java computing environment including a Java heap memory, one embodiment of the invention describes two or more designated portions, wherein each of the designated portions are designated for storing a logical component of the Java computing environment, and wherein each of the designated portions stores only the logical component that is designated to it.
As a computer readable media for storing a Java heap memory, one embodiment of the invention includes two or more designated portions, wherein each of the designated portions are designated for storing a logical component of the Java computing environment, and wherein each of the designated portions stores only the logical component that is designated to it.
These and other aspects and advantages of the present invention will become more apparent when the detailed description below is read in conjunction with the accompanying drawings.


REFERENCES:
patent: 601

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

Frameworks for implementation of java heaps does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Frameworks for implementation of java heaps, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Frameworks for implementation of java heaps will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3335715

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