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

Virtual Machines and Execution Environments (Wintersemester 2016/2017)

Dozent: Prof. Dr. Robert Hirschfeld (Software-Architekturen) , Tobias Pape (Software-Architekturen) , Tim Felgentreff (Software-Architekturen)

Allgemeine Information

  • Semesterwochenstunden: 4
  • ECTS: 6
  • Benotet: Ja
  • Einschreibefrist: 28.10.2016
  • Lehrform: Vorlesung
  • Belegungsart: Wahlpflichtmodul

Studiengänge, Modulgruppen & Module

IT-Systems Engineering BA
IT-Systems Engineering MA
  • IT-Systems Engineering A
  • IT-Systems Engineering B
  • IT-Systems Engineering C
  • IT-Systems Engineering D

Beschreibung

Als Abstraktions- und Portabilitätsgrundlage bilden Virtuelle Maschinen (VMs) den Kern vieler Programmiersprachenimplementierungen. Dabei stellen sich VMs als eigene Softwarefamilie dar, mit spezialisierten Konzepten zu Ausführung (z.B. Interpreter und just-in-time compiler (JIT)), Speicherverwaltung (z.B. garbage collection (GC)) oder Optimierung (z.B. polymorphic inline caches (PIC)). Insbesondere metazirkuläre und tracing-JIT VMs bieten interessante Forschungsgegenstände. Das Ziel der Vorlesung ist die Vermittlung von VM-Architekturen, der Umsetzung ihrer Komponenten, und die Auseinandersetzung mit aktueller Literatur zu diesem Thema.

Voraussetzungen

  • vertiefte Programmierkenntnisse
  • von Vorteil sind Kenntnisse in:
    • Python
    • Squeak/Smalltalk
    • C++/Assembler

Literatur

  • J. E. Smith, R. Nair, Virtual Machines. Versatile Platforms for Systems and Processes, Morgan Kaufmann, 2005.
  • R. Jones, R. Lins, Garbage Collection. Algorithms for Automatic Dynamic Memory Management, Wiley, 1996.
  • L. Peter Deutsch, Allan M. Schiffman. "Efficient implementation of the Smalltalk-80 system", POPL '84, ACM, 1984.
  • D. Ingalls, T. Kaehler, J. Maloney, S. Wallace, A. Kay. "Back to the future: The story of Squeak, A practical Smalltalk written in itself", OOPSLA ’97, ACM, 1997.
  • C. F. Bolz, A. Cuni, M. Fijałkowski, A. Rigo. "Tracing the meta-level: PyPy's tracing JIT compiler", ICOOOLPS ’09, ACM, 2009
  • C. F. Bolz, A. Kuhn, A. Lienhard, N. D. Matsakis, O. Nierstrasz, L. Renggli, A. Rigo, T. Verwaest. "Back to the future in one week — Implementing a Smalltalk VM in PyPy", S3 ’08, LNCS, Springer, 2008.


Die Literaturliste wird zum Literaturstudium und in der Vorlesung themenspezifisch erweitert.

Lern- und Lehrformen

Vorlesung

Leistungserfassung

Die Leistung wird durch Projekt und Literaturstudium erbracht.

Beide Teile sind mit 50 % gewichtet; sie werden mit insgesamt 6 benoteten Leistungspunkten angerechnet. Zur erfolgreichen Teilnahme an der Lehrveranstaltung müssen beide Teile mit jeweils mindestens 4,0 benotet worden sein.

Projekt

Die Projektleistung wird durch die erfolgreiche Bearbeitung eines gewählten Themas in Gruppen erbracht. Zur Erlangung der sechs benoteten Leistungspunkte sind die folgenden Anforderungen zu erfüllen:

  • Regelmäßige Anwesenheit in der Vorlesung bzw. beim Treffen mit den Projektbetreuern
  • Bearbeitung einer gewählten Problemstellung
  • Abschlusspräsentation der Projektergebnisse

Eine Woche vor der jeweiligen Abschlusspräsentation bespricht jede Gruppe die Vorversion der Vortragsunterlagen mit einem der Betreuer. Die Vortragsunterlagen sind einen Tag vor dem Vortrag per Email einzureichen. Sie bestehen aus:

  • den Dokumentquellen der im Vortrag verwendeten Folien,
  • einer PDF-Version derselben,
  • dem in der Demo verwendeten Quelltext,
  • einer Installationsbeschreibung und
  • einem Demo-Script

Alle im Rahmen der Veranstaltung erstellten Quelltexte sollten unter der MIT-Lizenz und, falls notwendig, mit einer den verwendeten Systemen kompatiblen Lizenz bereitgestellt werden.

Literaturstudium

Dem Literaturstudium werden Forschungsergebnisse – in der Regel dokumentiert in Form von wissenschaftlichen Artikeln – zu Grunde gelegt.

Jeder Artikel wird von einer Lese-Gruppe (Größe abhängig von der Gesamtteilnehmerzahl) und einem Vortragenden vorab gelesen und bearbeitet.

Der Vortragende stellt den Inhalt des Artikels zusätzlich in einer Präsentation von 20 Minuten Dauer vor. Der Vortrag soll das Ziel verfolgen, die wesentlichen Beiträge und Inhalte des Artikels zusammenzufassen und sie auch den Veranstaltungsteilnehmern zugänglich zu machen, an die der Artikel nicht zur Bearbeitung übergeben wurde.

Aufgabe der Lese-Gruppe ist es, die Beiträge des vorgestellten Artikels kritisch zu hinterfragen und so eine Diskussion in Gang zu bringen. Die Kritik darf nicht oberflächlich sein, sondern muss erkennen lassen, dass der Artikel gelesen und seine Beiträge verstanden wurden.

Der Vortragende sendet seinen Vortrag spätestens einen Tag vor der Präsentation per E-Mail an die Betreuer. Jedes Mitglied der Lese-Gruppe sendet mindestens drei inhaltliche Fragen, Kritikpunkte, oder Diskussionsanregungen zum Papier spätestens einen Tag vor der Präsentation per E-Mail an die Betreuer.

Die im Rahmen der Leseübung zu erbringende Leistung ergibt sich (für den Vortragenden) aus der Qualität des Vortrags bzw. (für die Lese-Gruppe) aus der Qualität der Fragen/Kritik/Diskussionsanregungen. 

Termine

  • Donnerstags 11:00–12:30 Uhr, Raum A-2.1

Zurück