- Instructors: Geoffrey M. Voelker
- Textbook: Operating Systems: Three Easy Pieces
- URL: http://cseweb.ucsd.edu/classes/sp18/cse120-a/
- Introduction
- OS architectural support
- Processes
- Threads
- Process and thread comparision
- Kernel-level vs. user-level threads
- Nachos thread API
- Preemptive vs. non-preemptive scheduling
- Synchronization
- Race condition: bank accounts
- Critical section
- Mutex
- Atomic read/write
- Peterson's algorithm
- Atomic instructions
- Spinlock
- Semaphores and monitors (1)
- Semaphore
- Readers/writers problem
- Bounded buffer
- Semaphores and monitors (2)
- Monitor
- Condition variables
- Interesting example: a bug in Linux driver
- Scheduling and deadlock
- FCFS/FIFO
- SJF
- Priority scheduling
- Round robin
- UNIX scheduler
- Deadlock
- Resource allocation graph
- Banker's algorithm
- Memory management
- Paging (1)
- Paging (2)
- Page replacement
- File systems
- File system implementation
- Protection
- Multicore
- Virtual machine monitors
- Summary and final review