Juice (JVM)
JUICE è una Java Virtual Machine sperimentale (una J2ME ad essere esatti), scritta in linguaggio C secondo le specifiche di Sun Microsystem. La JVM Juice, progettata per real-time Java, è stata sviluppata per girare sul sistema operativo NUXI. Le caratteristiche più rilevanti di Juice sono legate alla struttura della memoria heap, alla politica di allocazione degli oggetti in memoria ed al garbage collector utilizzato.
Indice |
La Gestione della Memoria in Juice[modifica]
In Juice, tutta la memoria heap disponibile è suddivisa in "chunks" di dimensione prefissata. L'unità di memoria usata è la "d-word" (o "double-word"). L'attuale dimensione di default per i chunks è fissata a 64 d-words. I chunks di memoria liberi sono organizzati in una lista collegata, mentre i chunks occupati da Java Objects sono connessi l'un l'altro mediante una struttura gerarchica, in un modo che ricorda la rappresentazione del file system di UNIX.
La Politica real-time di Allocazione degli Oggetti[modifica]
La politica do allocazione degli oggetti in Juice è strettamente connessa alla struttura utilizzata per rappresentare la memoria Heap. Grazie a questo tipo di struttura, infatti, diventa possibile allocare/deallocare Java Objects in un tempo che risulta dipendente solo dalla dimensione dell'oggetto stesso (predicibilità).
Il Pay-per-Use Garbage Collector[modifica]
Il Garbage Collector proposto è basato su un non-copying tracing collector che effettua memory reclamation solo in occasione dell'allocazione di un nuovo oggetto in memoria. Il nome del GC è dovuto al fatto che il costo pagato dal mutator, in termini di tempo sprecato per la collector execution, è direttamente proporzionale alla dimensione dell'oggetto da allocare.
Autori[modifica]
Garbage Collector, Heap Memory Management: Corrado Santoro, Roberto Aloi
Tutto il resto: Corrado Santoro
Bibliografia[modifica]
- A. Corsaro, C. Santoro. Optimizing JVM Object Operations to Improve WCET Predictability, article presented to the 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), thesis in Computer Engineering (University of Catania, Italy), 2005.
Collegamenti esterni[modifica]
|
|