April/May 2005

Virtual Machine Architectures, Implementations, and Applications 


Table of Contents

Instructor Information

Prof. James E. Smith

Office phone:   
Email:               jes@ece.wisc.edu

Course Information

       Virtual Machines: Architectures, Implementations, and Applications (draft version), J. E. Smith and Ravi Nair, to be published by Morgan Kaufmann, 2005.
          Projects that furhter the student's research are encouraged.


Web site created April 21, 2005


Class will meet on the following schedule.

April 26, May 3   9am -- 12 noon
May 9, 11, 18     3pm -- 5pm
May 24, 31         9am -- 12 noon

Course Outline

1. Introduction (1 hour)
  Architecture, abstraction, virtualization
  VM types and applications
  Course Roadmap

2. Emulation: Interpretation and Binary Translation (3 hours)
     Decode-dispatch interpretation
     Threaded interpretation
     Translation chaining
     Design issues and alternatives
     Case Study: Shade

3. Process VMs (3 hours)
     VM Integration
     Code Cacheing
     Handling OS calls
     Case studies: FX!32, WABI

4. Dynamic  Optmization (3 hours)
     Staged optimization
     Superblock optimization
     Precise traps
     Condition codes
     Case studies:  IA-32 EL, HP Dynamo

5. Co-Designed VMs (4 hours)
     Support for speculation
     Precise interrupts
     Superscalar processors
     Power/resource  management
     Case studies: Daisy, Crusoe, rePLay, AS/400
6. System VMs (3 hours)
   OS management and protection of resources
   Virtualizing memory, processor, I/O
   Instruction set virtualizability
   Hosted VMs  
   Case studies: IBM VM/370, Intel x86 VMware, Vanderpool

Reference Readings

Lecture Notes

Miscellaneous Links