CS 736 – Spring 2006

CS 736 – Spring 2006

 

Lecture 10: Complexity Summary (2)

 

  1. Layering
    1. THE - services
    2. Pilot manager/kernel
  2. Layers of indirection
    1. THE – virtual memory
    2. Programming semantics – capabilities
    3. Hydra – capabilities
    4. Programming semantics / hydra: directories and c-lists for lists of capabilities
    5. Unix mountable file system: mount table indirects on files
    6. SPIN event dispatchers
    7. RPC naming / binding mechanism
  3. Hierarchy
    1. Nucleus – processes
    2. Semantics – inferior spheres of protection
    3. Opal – resource groups
    4. Programming Semantics – file system structure
  4. Message passing
    1. Nucleus – all communication
    2. Mach
  5. Kernel / nucleus
    1. Nucleus
    2. Hydra
    3. Semantics
    4. Mach
  6. Naming for users
    1. Programming Semantics
    2. RPC
    3. Pilot naming handled outside kernel
  7. Fine grained protection: allows trusted code to be separated into pieces rather than all in kernel
    1. Programming semantics – capabilities
    2. Hydra – capabilities
    3. Spin – name spaces
    4. Opal – protection domains
    5.  
  8. Capabilities
    1. Programming semantics
    2. Hydra
    3. Spin
    4. Opal
    5. Mach port rights
  9. Single address space
    1. Programming semantics
    2. Pilot
    3. Opal
    4. Spin
  10. Protected subsystems
    1. Programming semantics: entry capabilities
    2. Hydra: templates
    3. Opal: portals, protection domains
    4. Mach: message servers
  11. Policy/mechanism separation
    1. Nucleus: scheduling, resource allocation by parent
    2. Programming semantics: exceptions handled by parent
    3. Hydra: PM for scheduling, memory mgmt
    4. SPIN: event handlers for threads, memory
    5. Unix: fork/exec allows policy by code before exec
  12. Byte-oriented text communication
    1. Unix pipes / stdin / stdout
    2. Unix i/o routines – read/write for everything
    3. Pliot streams
  13. Binary operating programs to allow chaining
    1. Unix pipes
    2. Pilot stream filters
    3.  
  14. Scripting
    1. Unix shell
  15. Expose hardware events & names
    1. Exo kernel
  16. Type safe languages
    1. Pilot
    2. Spin
  17. Kernel / manager organization
    1. Pilot
    2. Mach: external pager
  18. Caching: COMPARE TO special case code
    1. Mach: machine-independent memory
    2. Mach: external pagers
    3. Pilot: kernels for memory management
  19. Hints: COMPARE TO special case code
    1. Pilot hints on process swap out
  20. Segments
    1. OPAL
    2. Programming semantics
    3. Hydra
  21. Optimize for common case but handle others correctly
    1. RPC message size/frequency
  22. Reduce state in system
    1. Exo kernel: keep in library OS
    2. Mach: keep in external pager; outside PMAP
    3. RPC: limit server state
    4.