From: Manish Mittal (manishm_at_microsoft.com)
Date: Mon Mar 01 2004 - 15:43:58 PST
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.
This archive was generated by hypermail 2.1.6 : Mon Mar 01 2004 - 15:44:54 PST