CS162 - Operating Systems and Systems Programming

Taught by Prof. John Kubiatowicz at UC Berkeley in Fall, 2020

Course Website
Fall 2020 Course Website
Lecture Videos (YouTube)

Lectures

  1. Lecture 1 - What is an Operating System?
  2. Lecture 2 - Four Fundamental OS Concepts
  3. Lecture 3 - Abstractions 1: Threads and Processes
  4. Lecture 4 - Abstractions 2: Files and I/O
  5. Lecture 5 - Abstractions 3: IPC, Pipes, and Sockets
  6. Lecture 6 - Synchronization 1: Concurrency, Mutual Exclusion
  7. Lecture 7 - Synchronization 2: Semaphores, Lock Implementation
  8. Lecture 8 - Synchronization 3: Atomic Instructions, Monitors, Readers/Writers
  9. Lecture 10 - Scheduling 1: Concepts & Classic Policies
  10. Lecture 11 - Scheduling 2: Case Studies, Real Time, Forward Progress
  11. Lecture 12 - Scheduling 3: Deadlock
  12. Lecture 13 - Memory 1: Address Translation and Virtual Memory
  13. Lecture 14 - Memory 2: Virtual Memory, Caching and TLBs
  14. Lecture 15 - Memory 3: Caching & TLBs, Demand Paging
  15. Lecture 16 - Memory 4: Demand Paging Policies
  16. Lecture 17 - Demand Paging, General I/O, Storage Devices
  17. Lecture 18 - General I/O, Storage Devices, Performance
  18. Lecture 19 - Filesystems 1: Performance, Queueing Theory, Filesystem Design
  19. Lecture 20 - Filesystems 2: Filesystem Design, Case Studies
  20. Lecture 21 - Filesystems 3: Case Studies, Buffering, Reliability, Transactions
  21. Lecture 22 - Transactions, End-to-End Arguments, Distributed Decision Making
  22. Lecture 23 - Distributed Decision Making, Networking, TCP/IP