EECS 700 - Virtual Machines
Prasad Kulkarni
EECS Department
University of Kansas

Course Time: Tue/Thrus 11:00am - 12:15pm
Course Location: Learned 2111

Office: Eaton 2030
Office Hours: Tue/Thurs: 1:15-2:30pm
                (or by appointment)


ANNOUNCEMENTS
  1. 03/31/2009: Project design document due by the end of Friday, 04/03. Document should list the names of the team members, the project title, project goals, proposed approach to accomplish stated goals, and the criteria for success. Report should not exceed 2 pages.
  2. 04/20/2008: The exam is due before class on Tuesday, 27th April.
  3. 04/28/2008: Class project reports are due on Wednesday, 13th May.
CLASS NOTES
  1. Starting Notes
  2. Chapter 1 slides
  3. Chapter 2 slides
  4. Chapter 3 slides
  5. Chapter 4 slides
  6. Chapters 5 and 6 slides
  7. Chapter 8 slides | Figures
  8. Term Projects Description | Hotspot Build Instructions | HotSpot Source
Student Presentations
  1. 03/05:
    Jonathan - Optimizing an ANSI C Interpreter with Superoperators | slides
    Mike - The Structure and Performance of Interpreters | slides
  2. 03/10:
    Jordan - Secure and Practical Defense Against Code-injection Attacks Using Software Dynamic Translation | slides
    Bowe - Trusted Computing | slides
  3. 03/12:
    Kevin - The Pauseless GC Algorithm | slides
    Bala - Terra: A Virtual Machine-Based Platform for Trusted Computing | slides
  4. 03/26:
    Ashwini - Xen and the Art of Virtualization | slides
  5. 03/31:
    Anusha and Steve- Uniprocessor Garbage Collection Techniques | slides
    Steve - slides
  6. 04/02:
    Abijith - Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization | slides
    Arturo - Disco: Running Commodity Operating Systems on Scalable Multiprocessors | slides
  7. 04/07:
    Kristin - Using Valgrind to Detect Undefined Value Errors with Bit-Precision | slides
  8. 04/09:
    Keerthi - Reducing the Overhead of Dynamic Compilation | slides
    Ramya - A Comparison of Software and Hardware Techniques for x86 Virtualization | slides
  9. 04/14:
    Paul - Exploring Code Cache Eviction Granularities in Dynamic Optimization Systems | slides Prasad - Dynamic Compilation: The Benefits of Early Investing
  10. 04/16:
    Mike - Adaptive Optimization in the Jalapeno JVM | slides
    Bala - Operating System Support for Virtual Machines | slides
  11. 04/21:
  12. Jordan - VMM-Independent Graphics Acceleration | slides
    Ramya - Improving virtual machine performance using a cross-run profile repository | slides
    Kyle - A Survey of Adaptive Optimizations in Virtual Machines
  13. 04/23:
    Abijith - Live Migration of Virtual Machines | slides
    Ashwini - Xen and Co.: Communication-aware CPU Scheduling for Consolidated Xen-based Hosting Platforms | slides
    Keerthi - Cloneable JVM: A New Approach to Start Isolated Java Applications Faster
  14. 04/28:
    Jonathan - MicroPause: Proactively Invoking Garbage Collection for Improved Performance | slides
    Kyle - Dynamo: A Transparent Dynamic Optimization System | slides
  15. 04/30:
    Arturo - Cell GC: Using the Cell Synergistic Processor as a Garbage Collection Coprocessor | slides
  16. 05/05:
    Kevin - Fast Transparent Migration for Virtual Machines | slides
    Paul - When Virtual is Better Than Real | slides
    Bowe - The Java HotSpot Server Compiler |
  17. 05/07 Kristin - Garbage Collection Without Paging | slides
    Anusha and Steve - Uniprocessor Garbage Collection Techniques | Anusha slides
Reading List
  1. Interpreters
    1. Optimizing an ANSI C Interpreter with Superoperators
    2. Optimizing Direct Threaded Code by Selective Inlining
    3. The Structure and Performance of Interpreters
    4. The Behavior of Efficient Virtual Machine Interpreters on Modern Architectures
  2. Code Cache
    1. Exploring Code Cache Eviction Granularities in Dynamic Optimization Systems
    2. Generational Cache Management of Code Traces in Dynamic Optimization Systems
  3. Garbage Collection
    1. Uniprocessor Garbage Collection Techniques
    2. The Pauseless GC Algorithm
    3. Using the Cell Synergistic Processing Unit as a Garbage Collection Coprocessor -- Arturo
  4. Performance Optimization
    1. A Survey of Adaptive Optimizations in Virtual Machines -- Kyle
    2. Reducing the Overhead of Dynamic Compilation
    3. Dynamic Compilation: The Benefits of Early Investing
    4. Dynamo: A Transparent Dynamic Optimization System
    5. Adaptive Optimization in the Jalapeno JVM
    6. Adaptive Optimization in the Jalapeno JVM: The Controller's Analytical Model
  5. Security and Trustworthy Computing
    1. Using Valgrind to Detect Undefined Value Errors with Bit-Precision
    2. Terra: A Virtual Machine-Based Platform for Trusted Computing
    3. Trusted Computing
    4. Microsoft's Palladium Architecture
    5. Secure and Practical Defense Against Code-injection Attacks Using Software Dynamic Translation
  6. System Virtual Machines
    1. A Comparison of Software and Hardware Techniques for x86 Virtualization
    2. Xen and the Art of Virtualization
    3. When Virtual is Better Than Real
  7. Microkernels and Operating Systems
    1. Operating System Support for Virtual Machines
    2. Microkernels Meet Recursive Virtual Machines
    3. Exokernel: An Operating System Architecture for Application-Level Resource Management
    4. Disco: Running Commodity Operating Systems on Scalable Multiprocessors
    5. Overshadow: A Virtualization-Based Approach to Retrofitting Protection in Commodity Operating Systems
  8. Hardware and Virtualization
    1. Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization
    2. Fast Transparent Migration for Virtual Machines
    3. Live Migration of Virtual Machines
    4. Xen and Co.: Communication-aware CPU Scheduling for Consolidated Xen-based Hosting Platforms
    5. VMM-Independent Graphics Acceleration
    6. Cloneable JVM: A New Approach to Start Isolated Java Applications Faster


CONFERENCE LINKS
  1. Internation Conference on Virtual Execution Environments
  2. International Symposium on Code Generation and Optimization Also check the "Prior CGO conferences" link
  3. OOPSLA Also check the Previous OOPSLAs link