CS 736 – Spring 2006
Lecture 17: Review
- Papers
- THE
i. Layers
ii. Semaphores
iii. Virtual memory
- Nucleus
i. Hierarchical domains
ii. Messages
- Programming Semantics
i. Spheres of protection
ii. Capabilities
iii. Hierarchical file system
iv. Segments
- Hydra
i. Local name space
ii. Amplification of rights / templates
iii. Policy / mechanism separation
iv. Object oriented
- Unix
i. Worse-is-better
ii. Everything is a file
iii. Fork
iv. Pipes
v. Filters
vi. shell
- Exo-kernel
i. Eliminate abstractions
ii. Expose hardware names /events
- Pilot
i. Single address space
ii. Language based
iii. Procedure based (vs message based)
iv. Kernel / manager pattern
- Spin
i. Language based
ii. Event handlers and guards
iii. Binding based protection domains
- Opal
i. Single address space
ii. Password capabilities
iii. Process deconstruction into protection domain, seg refs, etc.
- Mach
i. Copy-on write
ii. External pagers
iii. Kernel as cache
iv. Messages / ports
- RPC
i. Stubs
ii. Binding
iii. Naming
iv. Optimization for small, fast calls
- Grapevine
i. Scaling up vs out
ii. Partitioning
iii. Input throttling
- LRPC
i. Optimize for common case
ii. Shared memory
iii. Break thread-process binding
iv. Language dependence for a stack / estack
v. Handle complexity in compiler / bind time
1. E.g. detect fast path
2. Binding
- Active Messages
i. Reflect hardware events
ii. Move control to application from system (no buffering)
- Scheduler Activations
i. New abstraction: not virtual processor, but uninterrupted virtual processor
ii. Notify interested parties of interesting events
iii. Preserve control over the things that matter to you
- Lottery Scheduling
i. Randomness for decision making
ii. Long-term goals allow correcting local decisions
iii. Proportional sharing as a goal
iv. Currencies for sub-allocation of resources
- FFS
i. Locality
ii. Summaries
iii. 2-level policies
iv. Hardware parameterization