Sok (JVM)

JUICE to eksperymentalna wirtualna maszyna Java ME napisana w języku C zgodnie ze specyfikacjami firmy Sun Microsystems . Juice JVM, zaprojektowana dla Java w czasie rzeczywistym, została specjalnie opracowana do pracy w systemie operacyjnym NUXI. Najbardziej istotne cechy Juice są związane ze strukturą pamięci sterty, polityką alokacji obiektów i używanym modułem wyrzucania elementów bezużytecznych .

Pamięć sterty

W Juice cała dostępna pamięć sterty jest dzielona na „kawałki” o ustalonym rozmiarze. Stosowaną jednostką pamięci jest „słowo d” (co oznacza „podwójne słowo”). Rzeczywisty domyślny rozmiar porcji jest ustalony na 64 d-słowa. Kawałki wolnej pamięci są zorganizowane w połączoną listę, podczas gdy kawałki zajmowane przez obiekty Java są połączone ze sobą poprzez hierarchiczną strukturę w sposób przypominający reprezentację systemu plików UNIX.

Polityka alokacji obiektów w czasie rzeczywistym

Zasady alokacji obiektów w Juice są ściśle powiązane ze strukturą używaną do reprezentowania pamięci sterty. Dzięki tej strukturze możliwe staje się przydzielanie (i zwalnianie) obiektów Java w czasie zależnym tylko od rozmiaru samego obiektu (przewidywalność).

Odśmiecacz śmieci typu pay-per-use

Proponowany moduł wyrzucania elementów bezużytecznych jest oparty na nie kopiującym kolektorze śledzenia, który wykonuje odzyskiwanie pamięci tylko wtedy, gdy musi zostać przydzielony nowy obiekt. Nazwa modułu wyrzucania elementów bezużytecznych wynika z tego, że koszt płacony przez mutator, pod względem zmarnowanego czasu na wykonanie modułu zbierającego, jest proporcjonalny do rozmiaru obiektu do przydzielenia.

Autorski

Garbage Collector, zarządzanie pamięcią sterty: Corrado Santoro , Roberto Aloi

Cała reszta: Corrado Santoro