disco: running commodity operating systems on scalable multiprocessors
DESCRIPTION
E. Bugnion, S Devine, and M Rosenblum Stanford University Presented by: Aaron J Beach. Disco: Running Commodity Operating Systems on Scalable Multiprocessors. Disco: The main idea. Decouple Operating System from machine hardware. OS runs on virtual machine - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/1.jpg)
CS 443 Advanced OS
Fabián E. Bustamante, Spring 2005
Disco: Running Commodity Operating Systems on Scalable Multiprocessors
E. Bugnion, S Devine, and M RosenblumStanford University
Presented by: Aaron J Beach
![Page 2: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/2.jpg)
2
Disco: The main idea
● Decouple Operating System from machine hardware.● OS runs on virtual machine● Virtual machine is assigned resources by Disco which manages
a pool of processing elements/memory resources
![Page 3: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/3.jpg)
Goals and Challenges
● Run operating systems efficiently on scalable multi-processor systems
● Reduce overhead associated with Disco layer● Scale above and below the Disco layer
(i.e. Many VMs and PEs)● Do this with a small implementation effort that
does not require major changes to the OS
![Page 4: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/4.jpg)
The Problem
● Innovative Hardware(scalable shared memory multiprocessors
● Requires significant changes to system software to support hardware advantages(i.e. Partitioning OS up into units and others)
● Since modern system software is so large this requires large amounts of development time
● Challenges- Overhead (memory,processing,replication)- Resource Management (idle loop)- Sharing/Communication
![Page 5: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/5.jpg)
Virtual Machines
● Run operating systems efficiently on scalable multi-processor systems
● Reduce overhead associated with Disco layer● Scale above and below the Disco layer
(i.e. Many VMs and PEs)● Do this with a small implementation effort that
does not require major changes to the OS
![Page 6: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/6.jpg)
Implementation
● Managing Resources- CPUs- Memory- Advanced Hardware (NUMA)- I/O devices- Network interfaces
● Changes to OS
![Page 7: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/7.jpg)
7
CPU Management
Schedules virtual machine/CPU as task
Sets registers to virtual machine registersand runs the task directly
Controlled (supervised) access to memory
![Page 8: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/8.jpg)
8
Memory Management
Another level of address translation
Gives each virtual machine a memory space starting at zero in the proper address size
Uses TLB for physical-to-machine translation
Stamps entries with address space identifier to avoid flushing TLB when changing address spaces
![Page 9: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/9.jpg)
9
Handling Advanced Hardware
● Must deal with possibly unconstant memory accesses
● Maintains locality between cache and memory page
![Page 10: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/10.jpg)
10
Managing I/O device access
● First translates into correct address
● Then gives the device exclusively to the machine
● This makes it so that the device does not have to actually be virtualized for each machine, simply access must be managed
![Page 11: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/11.jpg)
Managing Network Interfaces
● Goals- avoid duplication of data if possible
● How- sharing
● Data loaded into the cache can be accessed by other Machines, enabling communication between machines.
![Page 12: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/12.jpg)
Changes to OS and lower system
● Minimal changes, mostly to hardware abstraction level (HAL)... very funny
● Had to map machine address into supervisor segment (changing header files)
● OS downcalls resource information to Disco
● Specialized OS: SPLASHOSvery basic OS supporting SPLASH-2 appsmade with Disco in mind
![Page 13: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/13.jpg)
Experiments
● Two main things we are interested in- Overhead- Scalability
● Simulated on SimOS because FLASH system is not yet ready
● Overhead- Compare with the same OS running directly on the hardware (memory & CPU slowdown)
● Scalability- Measure running with different # of processors and virtual machines
![Page 14: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/14.jpg)
Experiments – Overhead - CPU
![Page 15: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/15.jpg)
Experiments – Overhead - Memory
![Page 16: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/16.jpg)
Experiments - Scalability
![Page 17: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/17.jpg)
Dynamic Page Migration/Replication● To achieve locality, hot pages are replicated
and migrated to satisfy cache misses locally
![Page 18: Disco: Running Commodity Operating Systems on Scalable Multiprocessors](https://reader035.vdocuments.mx/reader035/viewer/2022062422/56814241550346895dae64a2/html5/thumbnails/18.jpg)
Overview and Conclusions
● Two approaches to scalable shared memory- Large OS development- Statically partition and run multiple OS
● Disco is more flexible and takes less implementation to support a new OS
● Disco is like unimaginitive microkernel(just mirrors interface of hardware)
● Low overhead● Scalability● Supports advanced hardware● Small development effort modifying OS