disco: running commodity operating systems on scalable multiprocessors
Post on 10-Jan-2016
27 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
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
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
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
Implementation
● Managing Resources- CPUs- Memory- Advanced Hardware (NUMA)- I/O devices- Network interfaces
● Changes to OS
7
CPU Management
Schedules virtual machine/CPU as task
Sets registers to virtual machine registersand runs the task directly
Controlled (supervised) access to memory
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
9
Handling Advanced Hardware
● Must deal with possibly unconstant memory accesses
● Maintains locality between cache and memory page
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
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.
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
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
Experiments – Overhead - CPU
Experiments – Overhead - Memory
Experiments - Scalability
Dynamic Page Migration/Replication● To achieve locality, hot pages are replicated
and migrated to satisfy cache misses locally
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
top related