From: Nathan Dire (ndire_at_cs.washington.edu)
Date: Mon Mar 01 2004 - 16:10:44 PST
"Disco: Running Commodity Operating Systems on Scalable Multiprocessors"
E. Bugnion, S. Devine, M. Rosenblum
When a new scalable multiprocessor architecture is developed, it generally
requires significant development effort to modify an existing operating system
to run efficiently on the new hardware. The purpose of Disco is to provide a
mechanism for taking advantage of the scalability of the architecture to run
multiple copies of commodity operating system.
The basic approach of Disco is to introduce a layer of software between the
operating system and the hardware, called a virtual machine monitor. This
reduces the porting effort to the virtual machine code. The virtual machine
monitor approach also has advantages over a cluster of conventional hardware
in that resources are not statically partitioned among the OS instances, and
communication between them is faster. There are a number of challenges to
this approach, however: the additional software layer introduces overhead;
resource management is more difficult; and, sharing between OS instances
becomes difficult.
The Disco virtual machine monitor exposes three basic abstracted resources:
processors, physical memory, and I/O devices. Disco makes a virtual MIPS
R10000 CPU available to the operating system and schedules virtual CPU's
across the physical ones. Program code is executed directly on the physical
CPU to maximize performance. Disco exports a contiguous address space
starting at 0 to match typical OS assumptions, hiding NUMA configurations,
for example. The MIPS software-loaded TLB allows Disco to intercept TLB
insertions and change them to machine addresses. For I/O, rather than
emulating specific hardware devices, Disco adds special drivers to the
operating systems. Using interposition on all DMA requests, Disco allows VM's
to share main memory and disk resources. For networking, Disco manages a
virtual subnet, allowing efficient intra-machine communication.
While I think the fundamental idea of Disco makes good use of new hardware, I
don't see the value of running multiple commodity operating systems on new
architectures for an intermediate period. That is, I wouldn't expect that
there would be much demand for a temporary approach to utilizing the hardware.
This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 16:10:46 PST