Disco uses virtual machines to run multiple commodity operating systems on large-scale shared-memory multiprocessors. Disco VMM hides NUMA-ness from non-NUMA aware OSes, requires low effort to implement, and introduces moderate overhead due to virtualization.
- Introduction
- Problem Description
- A Return to Virtual Machine Monitors
- Challenges Facing Virtual Machines
- Disco: A Virtual Machine Monitor
- Disco's Interface
- Implementation of Disco
- Virtual CPUs
- Virtual Physical Memory
- NUMA Memory Management
- Virtual I/O Devices
- Copy-on-write Disks
- Virtual Network Interface
- Running Commodity Operating Systems
- Necessary Changes for MIPS Architecture
- Device Drivers
- Changes to the HAL
- Other Changes to IRIX
- SPLASHOS: A Specialized Operating System
- Experimental Results
- Experimental Setup and Workloads
- Execution Overheads
- Memory Overheads
- Scalability
- Dynamic Page Migration and Replication
- Related Work
- System Software for Scalable Shared Memory Machines
- Virtual Machine Monitors
- Other System Software Structuring Techniques
- ccNUMA Memory Management
- Conclusions
The motivation is to enable existing commodity operating systems to handle Non-Uniform Memory Access (NUMA) architectures. Instead of modifying existing operating systems to run on scalable shared-memory multiprocessors, an additional layer (VM monitor) is inserted between the hardware and the OS.
Cache-coherent Non-Uniform Memory Architecture (cc-NUMA) makes hardware scalable, while SMP ensures the same performance to all memory from everywhere. Both ensure correctness, though.
The advantages of using virtual machines in the context of this work are:
- The Disco layer understands the NUMA architecture
- It's a portability layer
- Monitors are smaller and easier to understand & trust than operating systems
- Allows to run different OSes concurrently (almost unmodified)
The drawbacks of using virtual machines are:
- Overhead: cost of virtualizing
- Time: VMM (Disco) acts as an emulator. Most instructions can just run, but privileged instructions + TLB instructions must be trapped & emulated
- Space: Multiple copies (OS code & each OS's file cache) waste memory
- Resource management: Lack of information to make good policy decisions
- Lost information about what is being used
- CPU - idle thread
- Memory - pages on the free list
- Lost information about what is being used
- Communication and Sharing problems:
- Hard to communicate between standalone VMs
- Most OSes require exclusive access to disks
This paper started off VMWare (which was founded by authors of Disco in 1998 and successfully commercialized this work) and revived virtual machines for the next 20 years. Now VMs are commodities, and every cloud provider and virtually every enterprise uses VMs today.
- IRIX: A variety of UNIX System V with BSD extensions.
- NUMA: What is NUMA?
- Paper PDF
- Paper review notes from CS 443 @ Northwestern by Joseph Paris
- Discussion panel from CS 736 @ UW-Madison
- Lecture slides from CS 262a @ Berkeley by Prof. Ion Stoica and Ali Ghodsi
{% file src="../../.gitbook/assets/21-Disco-Instructor-Notes Combined with Questions.pdf" %} Prof. Andrea's notes on Disco {% endfile %}