Disco: Running Commodity Operating Systems on Scalable Multiprocessors
One-line Summary
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.
Paper Structure Outline
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
Background & Motivation
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.
Design and Implementation
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
Communication and Sharing problems:
Hard to communicate between standalone VMs
Most OSes require exclusive access to disks
Evaluation
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.
New Vocabulary
IRIX: A variety of UNIX System V with BSD extensions.
NUMA: What is NUMA?
Links
Last updated