Medusa
Reading Notes
Architectural features to attempt
- Modularity (模块性)
- Robustness (健壮性)
- Efficience/Performance
3 types of OS structures for Cm*
- A single copy of the OS resides in one of the memories
- Replicate the OS code in each processor
- Static form of caching combining the two approaches above
Medusa adapt a structure(third one), where OS is divided into disjoint utilities which are distributed among processors.
Task force
- Consist of activities
Activity
- Process on a given node for a given utility
Pipes
- Communication channels among activities
Utility
- A single OS module, abstraction
- Communication via messages
- Distributed among cm nodes for parallelism
- Multiple instances for load balancing, reliability(like GFS and MapReduce, use multiple !copies as backups)
Descriptors
References to kernel-managed objects
- UDL descriptors
- Entry point into utilities, like system call
- PDL descriptors
- Reference to private pages, pipes
- SDL descriptors
- Reference to shared pages
- XDL descriptors
- External descriptors
- Mapping a local descriptor onto a remote PDL/SDL descriptor
- Unsealing
Class Notes
Main point
- multi-user operating system
distributed system structure
Centralized OS
- Pros:
- Easy to consistent
- simpler
- easy to maintain manager
Cons:
- Reliability: single point failure leads to service down
- Performance
Full (each node has the copy of OS)
Cons: Consumes too much memory
Decompose into modules
- Pros:
- Reliability: redundant module in processors
- Performance:
Utility
- a single OS module, abstraction
- communication via message
- distributed among Cm nodes for parallelism
- multiple instances for load balancing, reliability
Co-scheduling
Co-scheduling is the principle for concurrent systems of scheduling related processes to run on different processors at the same time (in parallel).
Spin-wait
- Spin-lock
- Makes sense in distributed system, but not in a uni-processor
Take away points
- distributed OS structure
- invoking a file system function is likely to be a remote invocation
- Co-schedule activities of a task
- spin waiting