Disco: Running Commodity Operating Systems on Scalable Multiprocessors

Mendel Rosenblum

Computer Systems Laboratory
Stanford University

Scalable shared-memory multiprocessors have moved from the research lab to the marketplace, with most multiprocessor computer vendors working on these machines. The approach benefits from having a common hardware base that cost-efficiently scales from workstations to supercomputers while maintaining application compatibility.

Unfortunately, adapting the system software to these machines has proven to be a particularly challenging problem. Issues like scalability, fault containment, advanced memory, CPU, and I/O management impact large portions of modern operating systems. The size and complexity of modern operating systems make the necessary modifications a resource-intensive undertaking that can inflate the cost and time-to-market of these machines.

Our approach builds the system software of these machines in a less resource-intensive way. Rather than extensively modifying the OS, we bring back an idea popular in the 1970s, virtual machine monitors (VMM). In a prototype called Disco, we use VMMs to run multiple copies of SGI's IRIX to form the system software of a scalable multiprocessor. Our experience shows the use of a VMM allows us to obtain most of the benefits of operating systems customized for scalable multiprocessors at a fraction of the implementation cost.

In this talk, we describe the design and implementation of Disco. We show that the overheads of the virtualization are small and that Disco can handle the non-uniform memory access times of the machine. We present the optimizations that allow virtual machines to efficiently communicate and transparently share resources such as the global buffer cache.


Back to LESS

Last modified: September 5, 1997
Robert Blumofe
rdb@cs.utexas.edu