Virtual Machines: Architectures, Implementations and Applications

 

Schedule
Saturday 4th, all day
Organizers/Speakers
- James E. Smith, University of Wisconsin-Madison
- Ravi Nair, IBM Research
Abstract

Virtual machines -- program execution environments implemented via a combination of hardware and hidden software -- have emerged as a powerful means for tackling a number of important engineering problems, including software portability and security, and processor performance optimization.

This tutorial will discuss both software and hardware techniques involved in implementing virtual machines of different types. The discussion will include several case studies chosen from commercial implementations as well as research projects.

Outline
1. Introduction and Overview

- Motivation
- Types of VMs and their applications
- Summary of key design issues

2. Emulation: Interpretation and Translation

- Interpretation methods
- Binary translation

3. Process VMs

- Integration
- Code caching
- Handling of precise traps

4. Dynamic Optimization

- Code re-scheduling
- Optimization methods

5. High Level VMs

- Platform independence
- Security issues
- Java, MSIL
- Hardware support for HL VMs

6. Co-Designed VMs

- Concealed Memory
- Hardware support
- System issues

7. System VMs

- Virtualizing processors, memory, I/O
- Instruction set virtualizability
- IBM System/370 VM
- VMware on Intel x86

8. Multiprocessors

- MP architecture issues
- Logical and physical partitioning

9. Emerging Applications

- Security
- The Grid
- Portable environments