CS 736 – Spring 2006

CS 736 – Spring 2006

 

Lecture 17: Review

  1. Papers
    1. THE

                                              i.     Layers

                                             ii.     Semaphores

                                           iii.     Virtual memory

    1. Nucleus

                                              i.     Hierarchical domains

                                             ii.     Messages

    1. Programming Semantics

                                              i.     Spheres of protection

                                             ii.     Capabilities

                                           iii.     Hierarchical file system

                                           iv.     Segments

    1. Hydra

                                              i.     Local name space

                                             ii.     Amplification of rights / templates

                                           iii.     Policy / mechanism separation

                                           iv.     Object oriented

    1. Unix

                                              i.     Worse-is-better

                                             ii.     Everything is a file

                                           iii.     Fork

                                           iv.     Pipes

                                             v.     Filters

                                           vi.     shell

    1. Exo-kernel

                                              i.     Eliminate abstractions

                                             ii.     Expose hardware names /events

    1. Pilot

                                              i.     Single address space

                                             ii.     Language based

                                           iii.     Procedure based (vs message based)

                                           iv.     Kernel / manager pattern

    1. Spin

                                              i.     Language based

                                             ii.     Event handlers and guards

                                           iii.     Binding based protection domains

    1. Opal

                                              i.     Single address space

                                             ii.     Password capabilities

                                           iii.     Process deconstruction into protection domain, seg refs, etc.

    1. Mach

                                              i.     Copy-on write

                                             ii.     External pagers

                                           iii.     Kernel as cache

                                           iv.     Messages / ports

    1. RPC

                                              i.     Stubs

                                             ii.     Binding

                                           iii.     Naming

                                           iv.     Optimization for small, fast calls

    1. Grapevine

                                              i.     Scaling up vs out

                                             ii.     Partitioning

                                           iii.     Input throttling

    1. 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

    1. Active Messages

                                              i.     Reflect hardware events

                                             ii.     Move control to application from system (no buffering)

    1. 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

    1. 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

    1. FFS

                                              i.     Locality

                                             ii.     Summaries

                                           iii.     2-level policies

                                           iv.     Hardware parameterization