From: Steve Arnold (stevearn_at_microsoft.com)
Date: Sun Feb 29 2004 - 18:20:17 PST
Disco is a virtual machine system built on top of IRIX. Although this is
not a familiar operating system to me, this paper described some of the
challenges in building a virtual machine. Their intention is build
sharing systems that were difficult to build before.
There are several key resources that must be virtualized. The first that
they mention is the CPU. Basically Disco has to schedule all the
processes that might be coming from a VM. The next resource is memory.
What looks like physical memory to the VM is actually virtual memory.
Disco keeps a translation table to map this virtual physical memory to
real physical memory. It keeps a software-based TLB to help out with
performance. There are some interesting considerations for NUMA, where
pages might be shared. Briefly mentioned, but interesting, are I/O
devices. I/O devices can either be mounted by one VM or several. In the
cases where they are shared, all the I/O must be multiplexed.
Disks may be shared on a copy-on-write system, as mentioned in a
previous paper. Finally mentioned is the Virtual Network interface,
which is used for sharing. (I would assume external network
communication takes place like that for any I/O device?)
I liked reading this paper to get an overview of a Virtual Machine
system. However, I thought it would be nice if they could have been less
tied to the architectures that they used. I also question the primary
purpose of their system. It seems to me (and this is how we use them)
that they are more effectively used for "throw away" systems, and not
production sharing system.
This archive was generated by hypermail 2.1.6 : Sun Feb 29 2004 - 18:21:01 PST