CS 450: Operating Systems

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

    • Define: 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

    • Define: concurrency and parallelism
    • Definition 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)
    • Define: race conditions and critical sections
    • (NO POSIX threading API, locking, NOR semaphore material on midterm)