Disco Review

From: Nathan Dire (ndire_at_cs.washington.edu)
Date: Mon Mar 01 2004 - 16:10:44 PST

  • Next message: Richard Jackson: "Review: Bugnion, et al. Disco: Running Commodity Operating Systems on Scalable Multiprocessors."

       "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.


  • Next message: Richard Jackson: "Review: Bugnion, et al. Disco: Running Commodity Operating Systems on Scalable Multiprocessors."

    This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 16:10:46 PST