Virtual Machines
Welcome to the home page of the Virtual Machines course in summer term 2006!
[Start Page]
[Lectures]
[Exercises]
[Materials]
[Examination]
Coordinates:
- Lectures: on Thursdays, 11:40-13:20, S2/02/C110, starting on April 20th
- Exercises: on Fridays, 11:40-13:20, S2/02/C110, starting on April 21st
- Final Examination: on Friday, July 21st, 11:40-13:20, S2/02/C110
Please subscribe to the course mailing list.
The topics covered in this course are as follows:
- terminology: virtualisation, abstraction, emulation, ...
- types of VMs (process VMs, system VMs, codesigned VMs)
- architecture and building blocks of VMs
- execution models: stack and register machines
- representation of application objects (program structure and data)
- interpretation of programs, optimisation of interpreters
- just-in-time compilation, optimising compilation
- dynamic optimisation: profiling/sampling, on-stack replacement
- synchronisation, multi-threading, locking
- automatic memory management (garbage collection): reference counting, mark-sweep,
copying GCs, generational GCs, incremental GCs
- impact of VM architectures on execution speed and memory usage
- system VMs: virtualisation at the operating system layer
- codesigned VMs
The course is taught by:
If you have any questions, please pose them on the mailing list. If you have very specific concerns, you can also address the organisers directly:
- regarding lectures, please address Michael Haupt,
- regarding exercises, please address Christoph Bockisch or Tom Dinkelaker.
Consultation hours are by appointment.