Skip to content

Latest commit

 

History

History
63 lines (59 loc) · 1.89 KB

uiuc-cs-423-2018-spring.md

File metadata and controls

63 lines (59 loc) · 1.89 KB

Operating Systems Design

Course info

Outline

  1. Introduction
  2. Kernels and processes: overview
  3. Kernels and processes: system programming
  4. Kernels and processes: the kernel abstraction
  5. Kernels and processes: interrupts
  6. Kernels and processes: the programming interface
  7. Concurrency and threads
    • Thread abstraction
    • Context switch
    • yield()
    • User-level thread vs. kernel-level thread
    • Fork/join concurrency
  8. Synchronization: synchronization I
    • Too-much-milk problem
    • Bounded buffer
  9. Synchronization: synchronization II
    • Barrier
    • Semaphores
    • Locks
    • Condition variables
    • Mesa vs. Hoare semantics
    • Synchronization best practices
    • Atomic instructions
  10. Synchronization: OS support for sync
    • Multi-cores
    • Spinlock
    • Mutex
    • Semaphores
    • Bounded buffer
    • Implementing CVs with semaphores
  11. Scheduling: Intro
  12. Scheduling: scheduling in Linux
  13. Scheduling: scheduling priodic tasks in embedded systems
  14. Memory: memory background
  15. Memory: virtual memory management
  16. Memory: virtual memory 2
  17. Memory: virtual memory wrap-up
  18. Virtualization: intro
  19. Virtualization: emulation-based virtualization
  20. Virtualization: dynamic binary translation
  21. Virtualization: process VMs
  22. File systems: disk scheduling
  23. File systems: linux disk scheduling
  24. File systems: file system design
  25. File systems: directory structures
  26. File systems: reliable storage
  27. Security: OS security overview
  28. Security: epic security fails in OS history
  29. Security: abusing hardware for fun and profit
  30. Security: access control in OSes
  31. Special topics: security wrap-up
  32. Special topics: energy and power considerations
  33. Special topics: the Linux audit system