Proceedings of The Sixteenth Symposium on Operating Systems Principles
In this paper 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 can run
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 non-uniform memory access time of these
systems. To reduce the memory overheads associated with running
multiple operating systems, we have developed techniques where the
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.
Links