Juice (JVM)
   HOME

TheInfoList



OR:

JUICE is a Java ME experimental
Java virtual machine A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes ...
written in C according to the
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
specifications. The Juice JVM, designed for real-time Java, was specifically developed to run on the NUXI operating system. The most relevant features of Juice are related to the structure for the heap memory, to the object allocation policy and to the
garbage collector A waste collector, also known as a garbageman, garbage collector, trashman (in the US), binman or (rarely) dustman (in the UK), is a person employed by a public or private enterprise to collect and dispose of municipal solid waste (refuse) and r ...
used.


Heap memory

In Juice, all the available heap memory is shared in "chunks" of pre-fixed size. The memory unit used is the "d-word" (that stands for "double-word"). The actual default size of the chunks is fixed to 64 d-words. The free memory chunks are organized in a linked list, while the chunks occupied by Java objects are connected to each other through a hierarchical structure in a way that resembles the representation of the UNIX file system.


Real-time object allocation policy

The object allocation policy in Juice is strictly connected to the structure used to represent heap memory. Because of this structure, it becomes possible to allocate (and deallocate) Java objects in a time that is dependent only on the size of the object itself (predictability).


The Pay-per-Use garbage collector

The proposed garbage collector is based on a non-copying tracing collector that performs memory reclamation only when a new object has to be allocated. The name of the garbage collector is because the cost paid by the mutator, in terms of wasted time for collector execution, is proportional to the size of the object to allocate.


Authors

Garbage Collector, Heap Memory Management
Corrado SantoroRoberto Aloi
All the rest
Corrado Santoro


References

* A. Corsaro, C. Santoro
''Optimizing JVM Object Operations to Improve WCET Predictability''
article presented to th
4th International Workshop on Worst-Case Execution Time
2004. * A. Corsaro, C. Santoro. A C++ Native Interface for Interpreted JVMs. In 1st Intl. JTRES Workshop (JTRES’03). LNCS 2889, Springer, 2003. * R. Aloi
''Memory Management and Garbage Collection in Real-time Java''(Italian)
{dead link, date=April 2017 , bot=InternetArchiveBot , fix-attempted=yes , thesis in Computer Engineering (University of Catania, Italy), 2005. Discontinued Java virtual machines