Disco: Running Commodity Operating Systems on Scalable Multiprocessors

From: Manish Mittal (manishm_at_microsoft.com)
Date: Mon Mar 01 2004 - 15:43:58 PST

  • Next message: Cliff Schmidt: "Review of Bugnion et al. "Disco""

    In this paper author describes the Disco which extends existing
    operating systems by providing a virtual machine abstraction and make it
    easy for commodity operating systems to work on multiprocessor machines.
    Disco is a VM monitor, which is a layer between OS and the hardware.
    This system is designed to make it easier to deal with scalability,
    fault isolation, and non-uniform memory access times without a complete
    re-write of a traditional operating system for new hardware. By
    minimizing the amount of work taken to get an existing system running on
    new hardware, the reliability of the resulting system is increased and
    the time taken to produce a working system is reduced. Disco virtualizes
    the kernel address space, uses dynamic page migration and replication to
    hide the non-uniformity of memory access times, and virtualizes I/O
    devices, providing a special abstraction for SCSI and network device
    interfaces. In order to achieve reasonable performance, Disco uses
    direct execution for most operations. The difficult and expensive part
    is the detection and emulation of services that can not be safely
    exported in raw form. For instance, to virtualize memory, Disco
    maintains a set of physical-to-machine address mappings and performs the
    necessary translations by entering mappings into the MIPS's
    software-controlled TLB. The authors also briefly describe their NUMA
    memory management scheme, which attempts to hide the unusual aspects of
    the architecture from clients running in a Disco VM. In addition to
    memory and CPU virtualization, Disco provides virtual DMA, network
    devices, and disks. Disco resembles Exokernel in many ways such as: both
    provide low level hardware interface and both are hierarchical. However,
    there are few differences between the two: Exokernel exports the
    hardware whereas Disco virtualize the hardware. Also in Exokernel,
    communication between devices is achieved by downloading code into
    kernel which avoids expensive crossing between kernel and app and
    copying overhead. On the other hand, Disco traps all I/O instructions
    and emulates them. For faster communication, Exokernel provides
    primitive for "protected control transfer" whereas Disco provides
    virtual subnet.

     


  • Next message: Cliff Schmidt: "Review of Bugnion et al. "Disco""

    This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 15:44:54 PST