Ein echtzeitfähiges Java-System für einen mehrfädigen Java-Mikrocontroller
Erstgutachter: Professor Dr. Theo Ungerer
Zweitgutachter: Professor Dr. Uwe Brinkschulte, Universität Karlsruhe
Zusammenfassung:
Diese Arbeit beschreibt den Entwurf und die Evaluierung einer echtzeitfähigen Java Virtual Machine (JVM) für einen mehrfädigen Java-Mikrocontroller. Nach der Erklärung grundlegender Begriffe und Definitionen wird zunächst der aktuelle Stand bei Techniken zur Ausführung von Java, verschiedenen JVM-Implementierungen und der Technik der Mehrfädigkeit geschildert. Anschließend wird der Komodo-Mikrocontroller vorgestellt. Dieser ist als echtzeitfähiges System konzipiert und war als Grundlage gegeben.
Die Komodo Java Machine (KJM) ist der Kern des entwickelten und erforschten Systems, sie ist die auf den mehrfädigen Komodo-Mikrocontroller adaptierte echtzeitfähige Java Virtual Machine. Die Entwicklung der KJM teilt sich in mehrere Bereiche auf: Alle unterstützen Befehle mussten echtzeitfähig gemacht werden, wozu Optimierungen erforderlich waren. Die Speicherbereinigung und der Klassenlader mussten für das System komplett entworfen werden, beide sind auf den mehrfädigen, echtzeitfähigen Mikrocontroller ausgerichtet. Außerdem musste die Anwendungsprogrammierumgebung (API) angepasst bzw. für systemeigene Komponenten neu entworfen werden.
Der Klassenlader erfüllt nicht nur seine eigentliche Aufgabe, das Laden neu benötigter Klassen, sondern ist in der Lage, bereits geladene Klassen in Echtzeit durch neue zu ersetzen. Er bietet also die Möglichkeit einer dynamischen Rekonfiguration. Für die Speicherbereinigung wurden zwei echtzeitfähige Algorithmen entwickelt und evaluiert, die beide in der Lage sind, bei einem von der Art der Anwendung abhängigen Anteil der Rechenzeit genügend freien Speicher bereitzuhalten. Der Klassenlader und die Speicherbereinigung wurden nach dem im Bereich der Betriebssysteme neuen Helper-Thread-Konzept entworfen, d.h. sie werden auf der mehrfädigen Hardware als separate Threads ausgeführt.
