May 2006

Virtual Machine Architectures, Implementations, and Applications 


Table of Contents

Instructor Information

Prof. James E. Smith

Office phone:   

Course Information

          Readings from the literature (below)
          Projects that further the student's research are encouraged.


        Web site created May 10, 2006


        Class will meet on the following schedule.

        May 15 -- 1400-1700
        May 16 -- 1200-1400, 1500-1700
        May 17 -- 1400-1700

        May 22 -- 1400-1700
        May 23 -- 1200-1400, 1500-1700
        May 24 -- 1400-1700

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


Lecture Notes

Miscellaneous Links