Anatomia Maszyny Wirtualnej Java

RSS

Cel przedmiotu

Zapoznanie się z problematyką maszyn wirtualnych na przykładzie maszyny wirtualnej Java. Uzyskanie umiejętności i kompetencji w zakresie rozumienia zasad działania maszyn wirtualnych, systemów automatycznego zarządzania pamięcią, idei i zasady kompilacji do kodu pośredniego.

Program wykładu

Java jako specyfikacja, język oraz platforma. Narzędzia javap, jasm, javac. Cykl życia klasy w JVM. Hooki w Javie. Format pliku *.class. Wykonywanie bytecode’u, ramki stosu. Instrukcje wchodzące w skład bytecode’u Java – tworzenie klas, obsługa wyjątków, synchronizacja, sposoby wywoływania metod. Sposoby reprezentacji obiektów w maszynie wirtualnej. Klasyfikacja i algorytmy garbate collectorów – reference counting, trading, Mark & Sweep, algorytmy adaptacyjne i pokoleniowe. Algorytm „train” i trójkolorowy. Optymalizacja parametrów różnych garbage collectorów na przykładzie Sun Spot. Współpraca Java – świat zewnętrzny – JNI. Biblioteka NIO w kontekście systemów automatycznego zarządzania pamięcią. Klasy osiągalności obiektów w Javie – finalizery. Java w systemach czasu rzeczywistego. Kompilacja Just In Time – koncepcja, algorytmy.

Charakterystyka pozostałych zajęć

W ramach przedmiotu prowadzone są zajęcia laboratoryjne. Treści tych zajęć ugruntowują i rozszerzają wiedzę przekazywaną podczas wykładów pozwalając wykorzystać ją w sposób praktyczny. W trakcie zajęć laboratoryjnych studenci piszą własny interpreter prostego języka, wyposażają go w garbage collector (implementując go na kilka sposobów). Studenci poznają także ideę instrumentacji klas przy użyciu bibliotek manipulowania bytecodem (np. BCEL). W trakcie pozostałych zadań studenci rozwiązują wybrane problemy m.in. z zakresu JNI oraz kompilacji Just In Time.

Bibliografia

1. Specyfikacja Maszyny Wirtualnej Java http://java.sun.com/docs/books/jvms/

Wszelkie prawa zastrzeżone © 2010 Katedra Informatyki   |   Akademia Górniczno-Hutnicza   |   Realizacja Creative Bastards