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.
La Gestione della Memoria in Juice
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
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
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
Garbage Collector, Heap Memory Management:
Corrado Santoro,
Roberto AloiTutto il resto:
Corrado Santoro
Bibliografia
Collegamenti esterni
The Juice Home PageSoftware di sistema
Juice