Virtuelle Maschinen (Sommersemester 2008)
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: 21.04.2008
- 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 von Forschungsergebnissen die Kenntnisse weiter zu vertiefen und auszubauen, sowie aktuelle Forschungsgegenstände aufzuzeigen.
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
- J. E. Smith, R. Nair, Virtual Machines. Versatile Platforms for Systems and Processes, Morgan Kaufmann, 2005.
- I. Craig, Virtual Machines, Springer, 2005.
- 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 Vorlesung (30.5.2008) 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 10-12 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 am 30.5.2008 statt. In der Woche vor diesem Termin bespricht jede Gruppe eine Vorversion ihrer Vortragsunterlagen mit dem Betreuer. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per E-Mail oder auf einer CD-ROM einzureichen. Sie bestehen aus
- den Dokumentquellen der im Vortrag verwendeten Folien (PowerPoint, Open Office Impress, LaTeX, ...),
- einer PDF-Version derselben,
- dem vollständigen Quellcode der geleisteten Implementierung,
- einer Installationsbeschreibung, und
- einer Kurzanleitung ("Demo-Skript"), aus der hervorgeht, wie die im Vortrag enthaltene Demonstration Schritt für Schritt nachvollzogen werden kann.
Die schriftliche Ausarbeitung ist zum Ende der Vorlesung (30.5.2008) beim Betreuer per E-Mail oder auf CD-ROM einzureichen. Sie besteht aus
- den Dokumentquellen der Ausarbeitung (Word, Open Office Write, LaTeX, ...) und
- 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. Jedes Papier wird an zwei Gruppen ("Proponenten" und "Opponenten") zur Bearbeitung übergeben.
Die Proponenten-Gruppe referiert in einem Vortrag von 20 Minuten Dauer über das Papier. Der Vortrag soll das Ziel verfolgen, die wesentlichen Beiträge und Inhalte des Papiers knapp zusammenzufassen und sie auch den Veranstaltungsteilnehmern zugänglich zu machen, an die das Papier nicht zur Bearbeitung übergeben wurde.
Aufgabe der Opponenten-Gruppe ist es, die Beiträge des von den Proponenten vorgestellten Papiers kritisch zu hinterfragen und so eine Diskussion in Gang zu bringen. Die Kritik darf nicht oberflächlich sein, sondern muss erkennen lassen, dass das Papier gelesen und seine Beiträge verstanden wurden. Die wesentlichen Aspekte der Kritik sind in einem Kurzvortrag von höchstens 10 Minuten Dauer auf den Punkt zu bringen.
Beide Gruppen senden Ihre jeweiligen Unterlagen (Vortrag bzw. stichpunktartige Aufzählung der Kritikpunkte) per E-Mail an den Betreuer; die Zusendung erfolgt spätestens um 9:00 Uhr am Tag der Leseübung, in der die den Gruppen zugeordneten Papiere besprochen werden.
Die im Rahmen der Leseübung zu erbringende Leistung ergibt sich (für Proponenten-Gruppen) aus der Qualität des Vortrags bzw. (für Opponenten-Gruppen) aus der Qualität der Kritik. Jede Gruppe soll im Verlauf der Vorlesung mindestens ein Mal sowohl als Proponenten- als auch als Opponenten-Gruppe agieren.
Hinweis
Wird das Einreichen verlangter Dokumente bis zum jeweils angegebenen Datum und Zeitpunkt versäumt, so gelten diese als nicht eingereicht, was zur Abwertung der Gesamtleistung führt.
Termine
Die Vorlesung endet am 30.5.2008.
Regelmäßige Termine
- Dienstags, 17:00-18:30 Uhr, A-1.2
- Donnerstags, 9:15-10:45 Uhr, A-1.2
Blocktage (9:15-16:45 Uhr)
- Freitag, 18.4.2008, A-1.1
- Freitag, 2.5.2008, A-1.1
- Freitag, 30.5.2008, A-1.2
Zurück