This seminar will be held in English.

Master Seminar Course - Virtualization Techniques (IN0014, IN2107)

Lecturer (assistant)
Duration2 SWS
TermSommersemester 2015
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: porting of applications from another architectecure, build platform independant software, easier maintenance of hardware, better utilization of resources, ananlysis of software during runtime for optimizations and error checking. The availability of better and cheaper hardware together with the advantages of virtual machines lead to an increased demand of this kind of systems. The cpu manufacturers are equiping their processors with virtualization capabilities.

Ideas for 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: definitions, classififications for VMs
  • Efficient Translation Techniques (JIT):
    • Binary ISA Translation, Example QEmu
    • Mozilla TraceMonkey (JavaScript), asm.js
    • Process Observation: Valgrind / PIN
  • Higher level VMs
    • .NET, JVM, Dalvik
    • Google Portable Client (LLVM Bitcode)
  • System-VMs
    • Xen/Paravirtualization
    • Hosted VMs: KVM / Virtualbox
    • Minimal Hypervisors: Jailhouse
    • Hardware Extensions for System-VMs: Intel, ARM
    • HW/SW-Codesign for VMs: Transmeta
  • Containers: Solaris/Oracle Zones, Linux Containers (LXC)
  • VMs for reliability: Virtual Lockstep

Topic Assignments

Supervisors in parenthesis.

  • S.B. : JIT compilers: asm.js / Binary Translation (Weidendorfer)
  • M.K. : High-Level-Language VMs: .NET/JVM (Küstner)
  • D.K. : Efficient Runtimes for Mobile: Dalvik/ART (Firbach)
  • M.E. : Fast Web-Apps: Google Portable/Native Clients (Weidendorfer)
  • R.S. : Runtime Instrumentation: Valgrind/PIN (Wilhelm)
  • L.W. : Containers: LXC/FreeBSD Jails/Docker (Meyer)
  • A.J. : Hosted System-VMs: bhyve/KVM (Weidendorfer)
  • K.B. : ParaVirtualization: Xen/virtio/LGuest (Weidendorfer)
  • A.M. : Hardware Extensions for SystemVMs: x86/ARM (Weidendorfer)
  • M.D. : HW/SW-Codesign for VMs: Crusoe/NVidia Denver (Breitbart)

Important Dates

  • before May 13: meeting with supervisor on content/outline (you should work into the topic before and present a proposal for an outline)
  • April 30, 16:30 in 01.06.020: 2-min. flash talks
  • June 2: deadline for paper draft (to send to supervisor)
  • June 9: end of peer review
  • June 23: deadline for final paper
  • June 30/July 1: block seminar

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 SS15: 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!).
  • April 30: meeting with 2-minute flash talks
  • Paper: 8 - 10 pages. Send your paper (final from your point of view!) 4 weeks before the seminar event to the supervisor. There will be a one week peer review by 2 students. Final version (with corrections because of peers/supervisor comments) is due 1 week before seminar event. Please use this Latex template.
  • Presentation: 25 min. (with 10-15 min. discussion afterwards)