Midterm Topic List

  1. Operating system organization & overview

    • basic definition & OS responsibilities
    • isolation mechanisms
    • Intel "CPL" and interrupt descriptor / vector usage for kernel vs. user protection
    • approaches to multasking (cooperative vs. preemptive) and kernel considerations
    • OS organization pros/cons (e.g., monolithic vs. micro- kernel)
  2. Scheduling

    • basic definition; policy vs. mechanism dichotomy
    • macro scheduling states and state transition diagram
    • scheduling metrics
    • bursty execution and interactive process considerations
    • scheduling policies: operation and characteristics (and identification with the latter)
    • priorities and aging
    • priority inversion and "solutions"
    • aggregate scheduling: multi-level feedback queue
  3. Virtualization

    • def: the "process"
    • exceptional control flow: categories and examples
    • virtual memory: motivation and implementations
      • segmentation and paging
      • hardware (MMU) vs. OS responsibilities
      • page table size calculations (given page, VM, and page table entry sizes)
    • (no dynamic memory alloc material on midterm)
  4. UNIX API

    • fork/exec/wait system call semantics
      • shell vs. OS separation
  5. Concurrency

    • def: concurrency and parallelism
    • def and high-level implementation: thread
    • motivation for intra-process concurrency (via threads)
      • partial blocking / improved utilization / performance gains
    • Amdahl's and Gustafson's laws --- premises and formulae
    • kernel vs. user thread implementation pros/cons (vs. fibers)
    • system overhead considerations (e.g., as seen in matrix mult example)
    • def: race conditions and critical sections
    • (no POSIX threading API, locking, nor semaphore material on midterm)