Disco
- 1 November 1997
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Computer Systems
- Vol. 15 (4) , 412-447
- https://doi.org/10.1145/265924.265930
Abstract
In this article we examine the problem of extending modern operating systems to run efficiently on large-scale shared-memory multiprocessors without a large implementation effort. Our approach brings back an idea popular in the 1970s: virtual machine monitors. We use virtual machines to run multiple commodity operating systems on a scalable multiprocessor. This solution addresses many of the challenges facing the system software for these machines. We demonstrate our approach with a prototype called Disco that runs multiple copies of Silicon Graphics' IRIX operating system on a multiprocessor. Our experience shows that the overheads of the monitor are small and that the approach provides scalability as well as the ability to deal with the nonuniform memory access time of these systems. To reduce the memory overheads associated with running multiple operating systems, virtual machines transparently share major data structures such as the program code and the file system buffer cache. We use the distributed-system support of modern operating systems to export a partial single system image to the users. The overall solution achieves most of the benefits of operating systems customized for scalable multiprocessors, yet it can be achieved with a significantly smaller implementation effort.Keywords
This publication has 8 references indexed in Scilit:
- Using the SimOS machine simulator to study complex computer systemsACM Transactions on Modeling and Computer Simulation, 1997
- Implementing efficient fault containment for multiprocessorsCommunications of the ACM, 1996
- Hypervisor-based fault toleranceACM Transactions on Computer Systems, 1996
- Hierarchical clustering: A structure for scalable multiprocessor operating system designThe Journal of Supercomputing, 1995
- Wait-free synchronizationACM Transactions on Programming Languages and Systems, 1991
- Simple but effective techniques for NUMA memory managementPublished by Association for Computing Machinery (ACM) ,1989
- The Origin of the VM/370 Time-Sharing SystemIBM Journal of Research and Development, 1981
- Survey of virtual machine researchComputer, 1974