Abstract 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 s, 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. 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.
|Published (Last):||23 January 2014|
|PDF File Size:||11.26 Mb|
|ePub File Size:||1.73 Mb|
|Price:||Free* [*Free Regsitration Required]|
Bugnion, S. Devine, K. Govil, and M. ACM Trans. Summary Disco is a virtual machine monitor that allows multiple operating systems to run on a shared-memory multiprocessor machine.
The authors show that developing a virtual machine monitor with multiple commodity operating systems allows systems to expose hardware innovations at lower development cost and with fewer bugs than developing a large monolithic operating system. Problem Hardware innovations are produced frequently, but operating systems do not adapt quickly enough to expose this new hardware.
Operating systems for such processors required significant changes from traditional OS design, and even after release, the new systems contained instabilities.
Due to these difficulties, many companies did not accommodate the new hardware in their systems at all. Contributions The authors implement Disco in roughly 13, lines of code. Disco is a virtual machine monitor, and it virtualizes the underlying machine into a more standard interface that can be used by many operating systems. In addition, the operating systems can communicate through a virtual network interface.
Disco can run both commodity operating systems and specialized operating systems. They show that Disco provides a small overhead over Irix for various workloads. The only issue with the experiments is that they are all very short, executing in several seconds. The authors do not explain clearly why longer workloads should exhibit similar behavior. What operations does an operating system perform on a TLB? Why does Disco need a software TLB in addition to the hardware one? Summary The article revisits the idea of virtual machine monitors and the problems of developing such system software in the new context of modern large-scale shared memory multiprocessors.
VMMs are an additional layer of indirection between the hardware and the OS. Multiple copies of commodity OSes can be run on a single multiprocessor system. Problem System software for scalable multiprocessor hardware systems has often trailed hardware in functionality, flexibility and reliability, as extensive changes to the complex Operating systems are required.
Hence, instead of modifying existing operating systems, the idea is to reduce the gap between hardware innovations and the adaptation of system software by adding a virtual machine monitor layer that virtualizes all the resources of the machine, exposing a more conventional interface to the OS. Hence, the approach provides a simple solution to the scalability, reliability, and NUMA management problems otherwise faced by the system software of largescale machines.
Multiple OSes can run in parallel on top of the VMM with fewer risks of incompatibilities and instabilities. It also allows for efficient sharing of memory and disk resources between virtual machines.
The monitor contains a simple interface to setup these shared regions. The operating system is extended with a special virtual memory segment driver to allow processes running on multiple virtual machines to share memory. Problem System software for scalable multiprocessor hardware systems that can provide better functionality, flexibility and reliability often requires extensive changes to the complex Operating systems.
Hence, instead of modifying existing operating systems, the idea is to add a virtual machine monitor layer that virtualizes all the resources of the machine, exposing a more conventional interface to the OS. Posted by: Anonymous February 2, AM Summary: The paper presents Disco which is a virtual machine monitor providing a layer of abstraction between OS and hardware. This enables running many copies of commodity operating system on shared-memory multiprocessor architecture with minimum changes to the existing operating system.
Disco achieves scalability along with efficient resource sharing and lower overhead. Problem: The inherent complexity in the operating system code is the biggest limitation to adapt new changes quickly. With the advances in the hardware which provides a shared-memory multiprocessor architecture,there was a need for operating system to evolve and utilize them efficiently.
Disco used the idea of virtual machine monitors to support this architecture efficiently and tries to reduce the previously existing overhead in the virtual monitor. Contributions: Disco runs multiple virtual machines on the same hardware by virtualizing all the resources of the machine. Each operating system runs on a virtual machine. Processors: Disco emulates all instructions, memory management unit and trap architecture of the processor so that the applications could run without any modification.
Disco provides efficient access to some kernel operations like enabling and disabling the interrupts can be one using the load and store instructions on special address. Physical Memory: Disco provides an abstraction for the main memory residing in physical memory starting from the address zero.
Disco virtualizes the disk by providing a set of virtual disks which can be mounted by any virtual machine. Evaluation: Disco is evaluated on a simulator of Flash machine. The authors have also showed that running multiple virtual machines in the Disco architecture is faster than running on a commercial symmetric operating system.
Page replacement and dynamic page migration improves the execution time by hiding the NUMAness of the system. Confusion: Posted by: Sowrabha Horatti Gopal February 2, AM Summary : Disco is a prototype virtual machine monitor intended to provide scalability with minimal changes in traditional operating systems.
It provides a layer of abstraction between operating system and hardware. This allows multiple copies of commodity operating systems to run on modern hardware with many processors by cooperating and efficiently sharing resources, thus, provide an illusion of single custom operating system designed specifically for scalable multiprocessors. Problem : A lot of new and innovative hardware designs are available but current operating systems are not designed to use that hardware efficiently.
Operating systems are very large and complex and hence cannot easily adapt new changes. To support scalability, that is, to run operating systems on hardware with hundreds of processors, a lot of changes must be made which is not only time consuming but also prone to bugs and errors. The cost of new design may even overcome the benefits of the innovations in hardware for many application areas.
Disco also overcomes some of the overheads that existed in traditional virtual machine monitors by enhancing communication and resource sharing. Contributions : Disco provides a hardware abstraction layer on top of scalable shared-memory multiprocessor architecture which visualizes all the resources so that multiple copies of the operating system can run using their own set of resources with little to no complex changes in the OS.
Building on a previously existing idea of virtual machine monitors, Disco eliminates or reduces some of the overheads identified by improved communication and resource sharing.
Disco supports efficient communication via a special network interface that can handle large transfer sizes without fragmentation. Failure is local to the virtual machine and does not affect other VMs. This was mainly because of trap emulation of TLB reload misses. A system with eight virtual machines could run some workloads 1. Overall the system looks promising as overheads are not very large as compared to the benefits provided by virtual machine monitor.
Problem OS is complex and with the new Hardware, developing system software requires much work and may introduce unreliability. Adding a layer of indirection like VMM is a natural idea, but still some problems to solve. How to reduce overhead? How to manage resource in an indirect layer? How to share data? Contributions a.
Bringing VMM back in new era for need of scabality, isolation and resource sharing! Specific technical methods incorperaed like ransparent memory sharing, page sharing, page migration, communication through nfs protocol. In its own opinion, support commodity os faced with new hardware. Four representative wordloads was introduced for combination of different resource usage. They also showed the benefits of their specific methods for more efficient VMM, transparent memory sharing and page migration and evaluated the scabality improvement provided by VMM.
Although the evaluation was mainly based on SimOS, they also ported Disco to HW and conducted some experiments of simlarity worloads. Confusion a Details in Copy-on-write disks. Posted by: Jing Liu February 2, AM Summary: Modifying system software to adapt to rapidly changing hardware is a cumbersome task.
To enable system software to interact with new hardware, with minimal modification, authors try to build an abstraction layer between hardware and system software. Authors propose a prototype Disco that runs multiple commodity OSs on scalable shared memory multiprocessors, with the use of virtual memory monitors VMMs as abstraction layer. Resultant design has low monitor overhead and facilitates a scalable system.
Problem: More often than not, system software do not evolve in pace with hardware. Additionally, modern OS software are complex, tightly coupled with hardware, and are hard to change. Modifying these applications is a slow and tedious task, has constraints such as maintaining backward compatibility, and has high potential to introduce newer bugs.
These reasons often force companies to release a system with new hardware and new software together if hardware changes are vast and require significant changes in OS. However, this strategy is not sustainable in the longer run considering the cost of releasing system software and hardware together.
To solve this problem, author build a prototype virtual memory monitor design system which can scale with rapid changes in large-scale shared memory multiprocessors, with minimal implementation efforts.
Contributions: 1. Introduces virtual memory monitor as thin abstraction software layer between hardware and system software. Has lesser issues than VMMs in s. Enables multiple commodity or specialized OSs to run on same hardware, and same commodity or specialized OS to run on slightly different hardware. Transparent sharing to reduce memory overhead while running multiple OSs. Uses copy-on-write COW to maintain consistency across replicated pages.
Evaluation: System was tested on simulator in four workload configurations that represent commonplace applications of scalable servers: software development, hardware development, scientific computing, and commercial databases. Execution overhead and memory overhead of introducing a new layer were small, generally less than 16 percent. Included in this is also the performance gain of Disco by reducing the kernel load and handling it in VMM layer.
Performance statistics would have been more reliable had the system run on actual hardware instead of simulator. Also, short running applications do not truly represent commonplace application of scalable computing servers. Posted by: Rahul Singh February 2, AM Summary Disco addresses the problem of the lack of efficient system software to keep up with the rapid advancements in hardware, specifically large scale shared memory multiprocessors.
The idea presented in Disco to solve this is to use multiple commodity operating systems coordinated by a Virtual Machine Monitor instead of building a tailor made OS for new hardware advancements. Problem It is often very difficult to keep up with the innovations in hardware if the aim is to develop system software solely tailored for the new hardware. This has various reasons like development delays given the size of system software, convincing large private software companies to make the shift to name a few.
To solve this Disco introduces Virtual Macine Monitors which virtualize the hardware resources and presents a traditional hardware model to the Operating Systems.
No static citation data Abstract 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 s, 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.