Virtuelle Maschinen (Sommersemester 2007)
Dozent:
Dr.-Ing. Michael Haupt
(Software-Architekturen)
,
Prof. Dr. Robert Hirschfeld
(Software-Architekturen)
Tutoren:
Dr.-Ing. Michael Haupt
Allgemeine Information
- Semesterwochenstunden: 4
- ECTS: 6
- Benotet:
Ja
- Einschreibefrist: 10.05.2007
- Lehrform:
- Belegungsart: Wahlpflichtmodul
Studiengänge
- IT-Systems Engineering MA
Beschreibung
Ausgehend von den Begriffen der Abstraktion und der Virtualisierung werden die verschiedenen Arten von virtuellen Maschinen (VMs) besprochen und ihr grundlegender Aufbau vorgestellt. Kern der Veranstaltung bildet die Behandlung von VMs für die Ausführung objektorientierter Programme. In diesem Kontext werden u.a. die Darstellung der verschiedenen Elemente von Applikationen innerhalb der VM, die Ausführung (interpretiert oder mit just-in-time-Compilern) und Optimierung von Anwendungen sowie die automatische Speicherverwaltung (garbage collection) behandelt.
Die Gegenstände der Vorlesung werden in der Übung auf zweierlei Weise vertieft. Zum Einen hat eine Programmierübung den Zweck, erlernte Konzepte unmittelbar anzuwenden. Zum Anderen verfolgt eine Leseübung die Absicht, durch die Erarbeitung aktueller Forschungsergebnisse die Kenntnisse weiter auszubauen.
Voraussetzungen
Sehr gute Kenntnisse in mindestens einer Programmiersprache. Kenntnisse in C und Assembler sind von Vorteil. Grundkenntnisse im Compilerbau. Keine Scheu vor technischen Details und ihrer Umsetzung in Code.
Literatur
[1] J. E. Smith, R. Nair, Virtual Machines. Versatile Platforms for Systems and Processes, Morgan Kaufmann, 2005.
[2] I. Craig, Virtual Machines, Springer, 2005.
[3] R. Jones, R. Lins, Garbage Collection. Algorithms for Automatic Dynamic Memory Management, Wiley, 1996.
Weitere Literatur wird jeweils gesondert bekannt gegeben.
Lern- und Lehrformen
Vorlesung und Übung (Programmier- und Leseübung).
Leistungserfassung
Die Leistung wird durch die Teilnahme an der Übung erbracht. Die Studierenden nehmen an der Übung in Gruppen (2-3 Mitglieder - die Gruppengröße wird in Abhängigkeit von der Teilnehmerzahl ggf. noch angepasst) teil. Die Übung ist unterteilt in eine Programmier- und eine Leseübung; jede Teilübung wird mit drei benoteten Leistungspunkten angerechnet.
Programmierübung
Am Anfang des Semesters werden verschiedene Programmieraufgaben vergeben. Diese sind von jeweils einer Gruppe bis zum Ende der Vorlesungszeit zu bearbeiten. Die Ergebnisse sind in Form einer schriftlichen Ausarbeitung und eines Vortrags zu dokumentieren.
Der Vortrag umfasst 30 Minuten und beinhaltet eine praktische Demonstration der durchgeführten Arbeit. Die schriftliche Ausarbeitung umfasst 8-10 Seiten im LNCS-Format und dokumentiert die geleistete Implementierung im Detail. Sie enthält eine Kurzzusammenfassung ("abstract") sowie - soweit erforderlich - ein Literaturverzeichnis. Auf die korrekte Angabe aller verwendeten Quellen sowie sprachliche Korrektheit ist besondere Sorgfalt zu legen. Eine Eigenleistung muss erkennbar sein. Die Entdeckung von Plagiaten führt zu jedem Zeitpunkt zum sofortigen Nichtbestehen der jeweiligen Leistung.
Die Vorträge finden in den letzten Wochen der Vorlesungszeit statt. Eine Woche vor dem jeweiligen Vortragstermin bespricht jeder Gruppe eine Vorversion ihrer Vortragsunterlagen mit dem Betreuer. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per Email oder auf einer CD-ROM einzureichen. Sie bestehen aus
o den Dokumentquellen der im Vortrag verwendeten Folien,
o einer PDF-Version derselben,
o dem vollständigen Quellcode der geleisteten Implementierung,
o einer Installationsbeschreibung, und
o einem Demo-Script.
Eine Vorversion der schriftlichen Ausarbeitung ist zum Ende der Vorlesungszeit beim Betreuer als PDF-Dokument einzureichen. Sie wird innerhalb einer Woche begutachtet und zur Endausfertigung an die Gruppe zurückgegeben. Die Kommentare des Gutachters sind bei der Anfertigung der Endfassung zu berücksichtigen. Die Endfassung ist eine Woche nach Erhalt der Gutachterkommentare per Email oder auf einer CD-ROM abzugeben. Sie besteht aus
o den Dokumentquellen der Ausarbeitung und
o einer PDF-Version derselben.
Alle im Rahmen der Programmierübung erstellten Dokumente und Quelltexte sollen unter der MIT-Lizenz oder, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden.
Leseübung
Der Leseübung werden Forschungsergebnisse - in der Regel dokumentiert in Form von Konferenzveröffentlichungen - zu Grunde gelegt. Alle Teilnehmer lesen die jeweiligen Papiere, und jede Gruppe formuliert zu jedem Papier eine oder zwei Anschlussfragen. Diese müssen dokumentieren, dass das Papier gelesen und der Inhalt durchdacht wurde.
Jede Gruppe soll mindestens ein Mal im Vorlesungszeitraum zu einem der aktuellen Papiere in einem Vortrag von 20 Minuten Dauer referieren. Im Anschluss an den Vortrag werden die eingereichten Fragen im Plenum diskutiert.
Die im Rahmen der Leseübung zu erbringende Leistung ergibt sich aus der Qualität der Fragen und des Vortrags.
Termine
Vorlesungen/Übungen:
o Dienstags, 17:00-18:30, HPI A-1.1
o Donnerstags, 9:15-10:45, HPI A-1.2
Einschreibefrist:
o 10. Mai 2007
Zurück