This seminar will be held in English.

Seminar Course - Virtualization Techniques (IN0014, IN2107, IN4609)

Lecturer (assistant)
Duration2 SWS
TermSommersemester 2017
Position within curriculaSee TUMonline

Course criteria & registration

Description

Virtualization of computing systems incorporates the topics computer architecture, operating systems and compiler development.

In this seminar we will focus on architectural concepts. Virtual sytems are used for different reasons: to run applications compiled for another architectecure, to build platform independant software, for easier maintenance of hardware, for better utilization of resources (consolidation), or for analysis of software during runtime for optimizations and error checking. The availability of fast and cheap hardware increased the utilization of virtualization solutions, especially also for outsourcing hardware to cloud providers.

Topics

The seminar will present concrete Virtual Machines and the techniques to make them fast. Below is a list of suggested topics, but if you are interested in a specific VM implementation not listed, chances are high that we can make a talk topic out of it, given that there is enough (scientific) literature.

Possible topics:

  • Overview: definition, classification, important terms
  • Efficient Translation Techniques (JIT):
    • Binary ISA Translation, e.g. QEmu
    • Efficient web applications (e.g. JavaScript V8, Chakra, asm.js, webasm)
    • Process Observation: Valgrind / PIN
  • Higher level VMs
    • .NET, JVM, Android Dalvik/ART
    • Google Native/Portable Client
  • System-VMs
    • Xen/Paravirtualization
    • Hosted VMs: KVM / Virtualbox
    • Hardware Extensions for System-VMs: Intel, ARM
    • Library-OSes (OSv, MirageOS)
    • HW/SW-Codesign for VMs: Transmeta, NVidia X1
  • Containers: Solaris/Oracle Zones, Linux Containers (LXC)

Assignment

(Supervisor in parenthesis)

  • GraalVM for JVM (Josef Weidendorfer)
  • Library-OSes: OS-V, MirageOS (Josef Weidendorfer)
  • Paravirtualization/Xen (Dai Yang)
  • HW Extensions for VMs: Intel/ARM (Marcel Meyer)
  • Containers (CGroups, Docker) (Isaias Compres)
  • Pin/Valgrind (Andreas Wilhelm)
  • Google Native/Portable Client (Josef Weidendorfer)
  • Asm.js/WebAsm (Tilman Küstner)
  • JavaScript Engines (V8) (Josef Weidendorfer)
  • Hosted System-VMs: KVM (Dai Yang)
  • Minimal Hyervisors: Jailhouse (Andreas Wilhelm)
  • ISA translation, QEmu (Josef Weidendorfer)

Important Dates

  • before May 11: meeting with supervisor on content/outline (you should work into the topic before and present a proposal for an outline)
  • May 11, 16:30 in 01.06.020: 2-min. flash talks
  • June 2: deadline for paper draft (to send to supervisor)
  • June 16: end of peer review
  • June 28: deadline for final paper
  • July 4/5: block seminar (Tue/Wed afternoons 14:00-18:00, room FMI 01.08.011)

Organization

  • After registration and topic assignment, your attendance is mandatory (not appearing will be "5/not shown up" in TUMonline)
  • Searching for literature: starting immediately
  • 1st month SS17: make up a meeting with your supervisor (see above), discussing about the literature selection and outline of your paper and presentation (you should prepare that yourself before the meeting!).
  • May 11, 15:30 in 01.06.020: meeting with 2-minute flash talks
  • Paper: 8 - 10 pages. Send your paper (final from your point of view!) at draft deadline to the supervisor. Please use this Latex template.
  • Peer review: 1 week after paper draft deadline. Every student randomly gets 2 papers from other students.
  • Final paper version (with corrections from peers/supervisor comments) is due 1 week before block seminar event.
  • Presentation: 25 min. (with 10-15 min. discussion afterwards)