Review: Bugnion, et al. Disco: Running Commodity Operating Systems on Scalable Multiprocessors.

From: Richard Jackson (richja_at_expedia.com)
Date: Mon Mar 01 2004 - 16:14:13 PST

  • Next message: Greg Green: "Disco: Running Commodity Operating Systems on Scalable Multiprocessors"

    This 1997 paper by Bugnion, Devine and Rosenblum discusses a return to
    virtual machine monitors(VMM) with a new VMM called Disco. This paper
    attempts to solve many of the problems that were inherent in earlier
    related work.
     
    The paper is divided into the following sections: 1) overview of problem
    space, 2) overview of Disco, 3) experimental results.
     
    The first section discusses the rational behind VMMs. While some of
    this seems to be generally understood, I was surprised by some of the
    details that were presented here. Most importantly, the paper says that
    a VMM will greatly reduce development costs. By providing a layer of
    abstraction on top of a given hardware system, a VMM allows multiple
    off-the-shelf operating systems to run with little or no changes to
    support the given hardware. In comparison, modifying these OS's to run
    on the hardware directly would involve significantly more development
    effort. A VMM also allows multiple independent operating systems to run
    simultaneously, which can be useful in a shared-multiprocessor
    environment where resources are plentiful. The paper notes the
    following problems facing VMMs: 1) overheads, 2) resource management
    within the VMM, 3) communication between VMMs.
     
    Disco is a new VMM that was designed for the FLASH multiprocessor. The
    FLASH machine uses NUMA, but Disco abstracts this into a nearly-UMA
    semantics, so that the operating systems running on the VMM do not need
    to be NUMA-aware. Communication between VMMs is virtualized by Disco,
    meaning that efficient cross-VMM communication is possible. CPUs and
    memory are also virtualized by Disco. The virtual CPUs are scheduled as
    expected, but they do not map directly to physical CPUs. That is, there
    may be more virtual CPUs that physical CPUs. Regarding memory
    management, this is divided into 3 different levels: 1) virtual - as
    seen by each CPU, 2) physical - the complete address space, shared by
    all nodes, 3) machine - the physical memory located on each machine,
    which is allocated as needed by the memory manager. For disk access,
    copy-on-write is used that allows sharing of data between virtual CPUs
    on each node. For their tests, they chose IRIX 5.3 to run on top of
    Disco. Many changes were required to IRIX, including device drivers,
    the HAL, and support for the virtual network support. Overall, all
    these changes really surprised me. I thought the point of a VMM was
    that an OS could run on the VMM without any modifications. The
    modifications listed here seemed significant, although the authors did
    not indicate that this was a problem.
     
    Regarding performance, various data was presented that show Disco's
    ability to run efficiently and conserve memory by sharing. The results
    were quite impressive, and it's clear that the main design goals were
    reached. For the IRIX implementation, they showed that the overhead of
    the VMM is about 16%. I think that this is low enough to make this a
    viable option for many applications.
     
    The major benefits of this paper were: 1) enhancements to VMM to improve
    performance by sharing memory and disk resources, 2) hiding of NUMA
    architecture, 3) re-introduction of VMM as a viable alternative to
    custom-OS development.
     
    The weaknesses of this paper were: 1) too much OS code needed to be
    modified to support the VMM, 2) replication of pages is limited to hot
    pages - this seemed non-ideal, 3) the performance results were based on
    a simulation because the FLASH machine was not yet available, 4) the
    performance results may be skewed, based on the fact that a simulator
    was used to collect results.
     


  • Next message: Greg Green: "Disco: Running Commodity Operating Systems on Scalable Multiprocessors"

    This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 16:14:25 PST