Download Disco: Running Commodity Operating Systems on Scalable

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Distributed operating system wikipedia, lookup

CP/M wikipedia, lookup

Paging wikipedia, lookup

Memory management unit wikipedia, lookup

Transcript
Disco: Running Commodity Operating
Systems on Scalable Multiprocessors
E. Bugnion, S Devine, and M Rosenblum
Stanford University
Presented by: Aaron J Beach
CS 443 Advanced OS
Fabián E. Bustamante, Spring 2005
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
2
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
CPU Management
Schedules virtual machine/CPU as task
Sets registers to virtual machine registers
and runs the task directly
Controlled (supervised) access to memory
7
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
8
Handling Advanced Hardware
●
●
Must deal with possibly unconstant memory
accesses
Maintains locality between cache and
memory page
9
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
10
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: SPLASHOS
very basic OS supporting SPLASH-2 apps
made 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