Disco: Running Commodity Operating Systems on Scalable Multiprocessors

Preview:

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 Presentation

Citation preview

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

Recommended