- Instructors: Remzi Arpaci-Dusseau
- Textbook: Operating Systems: Three Easy Pieces
- URL: http://pages.cs.wisc.edu/~remzi/Classes/537/Spring2018/
- Introduction
- Scheduling
- Memory management
- Paging: TLBs - Smaller
- Beyond physical
- Threads - Locks
- Data race
- Mutual exclusion
- Spinlock
- Atomic instruction
- Add locks to a list or hash table
- Locks, CVs
- Ticket locks
- yield()
- park()/unpark()
- condition variables
- fork/join problem
- Producer/consumer problem
- Semaphores
- Producer/consumer problem (cont.)
- Semaphores
- Deadlock
- Concurrency bugs
- Atomicity violation
- Ordering violation
- Preventing deadlock
- Avoiding deadlock
- Detecting deadlock
- Recovering deadlock
- I/O and disks
- RAID and file systems
- File system implementation and FFS
- Journaling
- LFS and SSD
Lecture 8: Remembering producer/consumer (Part 1). Ending producer/consumer, intro to semaphores (Part 2). Notes.Handouts: Semaphores. Video: Part 1 Part 2 Part 3 (Discussion)
Lecture 9: Bugs and deadlock (Part 1). Review (Part 2). Notes. Part 1 Part 2