CS 736 – Spring 2006

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.