Hasso-Plattner-Institut25 Jahre HPI
Hasso-Plattner-Institut25 Jahre HPI
 

Virtuelle Maschinen (Sommersemester 2009)

Lecturer: Dr.-Ing. Michael Haupt (Software-Architekturen) , Prof. Dr. Robert Hirschfeld (Software-Architekturen)

General Information

  • Weekly Hours: 4
  • Credits: 6
  • Graded: yes
  • Enrolment Deadline: 04.05.2009
  • Teaching Form:
  • Enrolment Type: Compulsory Elective Module

Programs

  • IT-Systems Engineering MA

Description

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.

Requirements

Sehr gute Kenntnisse in mindestens einer Programmiersprache. Kenntnisse in C/C++, Smalltalk und Assembler sind von Vorteil. Grundkenntnisse im Compilerbau. Keine Scheu vor technischen Details und ihrer Umsetzung in Code.

Literature

  •  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.

Learning

  • Vorlesung und Übung (Programmier- und Leseübung)

Examination

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 (12.6.2009) 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 12.6.2009 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 (12.6.2009) 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.

Dates

Die Vorlesung endet am 12.6.2009.

Regelmäßige Termine

  • Dienstags, 13:30-15:00 Uhr, HS3
  • Donnerstags, 9:15-10:45 Uhr, HS3

Blocktage (9:15-16:45 Uhr, A-2.2)

  • Freitag, 24.4.2009
  • Freitag, 8.5.2009
  • Freitag, 12.6.2009

Zurück