May 2004

Virtual Machine Architectures, Implementations, and Applications 


Table of Contents

Instructor Information

Prof. James E. Smith

Office:             Modul D6-211
Office phone:   934017409

Course Information

       Virtual Machines: Architectures, Implementations, and Applications (draft version), J. E. Smith and Ravi Nair, to be published by Morgan Kaufmann, 2005.


Web site created May 14 , 2004


Class will meet on the following schedule.

May  17-21 & May 24-28;  10 am --12 noon

Course Outline

1. Introduction (1 hour)
   VM types and applications
   Translation, Optimization, Replication
   Summary of key design issues
   Course Roadmap

2. Real Machines (1 hour)
    Computer Architecture(s)
    Principal interfaces: ISA, ABI
    Managing and protecting hardware resources

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

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

5. Dynamic  Optmization (2 hours)
    Staged optimization
    Superblock optimization
    Precise traps
    Case studies:  UQDBT,  HP Dynamo

6. High Level VMs (3 hours)
     Modern VMs: network computing, object oritentation
     Microsoft CLI
     Case Study: IBM Jikes

7. Co-Designed VMs (1 hour)
    Support for speculation
    Precise interrupts
    Case studies: Daisy, Crusoe
8. System VMs (3 hours)
   OS management and protection of resources
   Virtualizing memory, processor, I/O
   Instruction set virtualizability
   Hosted VMs
   Whole System VMs
   Case studies: IBM VM/370, Intel x86 VMware, SimOS
        9. Multiprocessors (1 hour)
              System VMs
              Memory consistency
              Case study: IBM LPAR

Reference Readings

Lecture Notes

Miscellaneous Links