CS 736 – Fall 2006 – Midterm Review
a. THE
i. Layers
ii. Semaphores
iii. Virtual memory
b. Nucleus
i. Hierarchical domains
ii. Messages
c. Hydra
i. Local name space
ii. Amplification of rights / templates
iii. Policy / mechanism separation
iv. Object oriented
d. Unix
i. Worse-is-better
ii. Everything is a file
iii. Fork
iv. Pipes
v. Filters
vi. shell
e. Pilot
i. Single address space
ii. Language based
iii. Procedure based (vs message based)
iv. Kernel / manager pattern
f. Spin
i. Language based
ii. Event handlers and guards
iii. Binding based protection domains
g. Opal
i. Single address space
ii. Password capabilities
iii. Process deconstruction into protection domain, seg refs, etc.
h. Exo-kernel
i. Eliminate abstractions
ii. Expose hardware names /events
i. Vax memory
i. Local resource management for predictable performance
ii. Constant-time operations
iii. Batching writes / prefetching
iv. Swapping for livelock
j. Unix memory
i. Global memory management for many processes / user
ii. Overhead-based selection of scan rate
iii. Background scanning
iv. Prefetching / batching
k. RPC
i. Stubs
ii. Binding
iii. Naming
iv. Optimization for small, fast calls
v.
vi. Input throttling
l. 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
m. VMware
i. Measure performance overhead
ii. Batching to improve throughput
iii. Lightweight notification
iv. i/O ports optimize for semantics of access – like memory
n. Resource Containers
i. Break process abstraction
ii. Fine grained accounting / scheduling
iii. Accounting / scheduling for fairness & denial of service prevention.
o. FFS
i. Locality
ii. Summaries
iii. 2-level policies
iv. Hardware parameterization
p. LFS
i. Temporal locality
ii. Log data structure – large sequential writes
iii. Periodic cleaning / hot-cold policy
iv. Summary data structurs
v.