Lecture Slides and Reading Assignments

Date Lecture Reading Assignment
1/18 Administration (pdf) (ppt) Stallings 2.1-2.4
1/20 Introduction to OS (part 1) (pdf) (ppt)
1/23 Introduction to OS (part 2), Project 0 (pdf) (ppt) Stallings 3.1-3.4 (skip subsection "Suspended Processes" pg. 122), Section 4.1 up to pg. 164
1/25 Threads & Processes (part 1): context switching (pdf) (ppt)
1/27 Threads & Processes (part 2): context switching, procedure switching, kernel stacks (pdf) (ppt)
1/30 Threads & Processes (part 3): asynchronous context switching, thread states (pdf) (ppt) Stallings 5.1-5.4
2/1 Threads & Processes (part 4): priority-based scheduling (pdf) (ppt)
2/3 Threads & Processes (part 5): process & thread APIs, fork/join, multithreading & languages. (pdf) (ppt)
2/6 Concurrency & Synchronization (part 1): race conditions, critical section problem, disabling interrupts approach (pdf) (ppt)
2/8 Concurrency & Synchronization (part 2): implementing locks on uniprocessors, using locks (pdf) (ppt)
2/10 Concurrency & Synchronization (part 3): locks in Java/C#; atomic instructions, multiprocessor spinlocks (pdf) (ppt)
2/13 Concurrency & Synchronization (part 4): semaphores (pdf) (ppt) Stallings 5.6-5.7
2/15 Concurrency & Synchronization (part 5): monitors (pdf) (ppt) Stallings 6.1-6.2, 6.4, 6.6-6.11
2/17 Concurrency & Synchronization (part 6): monitors in Java/C#; optimistic concurrency control.
Deadlock (part 1): introduction
(pdf) (ppt) Stallings 9.1-9.4
2/20 Deadlock (part 2): necessary conditions, resource allocation graph (pdf) (ppt)
2/22 Deadlock (part 3): detection & recovery, detection prevention & avoidance (pdf) (ppt)
2/24 Scheduling (part 1): scheduling goals & constraints; FCFS, Round-Robin, SPN (pdf) (ppt)
2/27 Scheduling (part 2): MLFQS, Linux Scheduler, Lottery Scheduling (pdf) (ppt) Stallings 7.1-7.4, but read Pintos Project 2 documentation first!
3/1 Multiprogramming Basics: linking and loading, virtual address spaces, context switching & page tables (pdf) (ppt)
3/3 Guest lecture by Shahrooz Feizabadi:
Real-time Scheduling: RMA & EDF
(pdf) (ppt) Stallings 10.2
3/13 Virtual Memory (part 1): address translation, page tables, & TLB (pdf) (ppt) Stallings 7.1-7.4, 8.1-8.2
3/15 Virtual Memory (part 2): TLB reload, page table implementation, hierarchical page tables, inverted page tables. (pdf) (ppt)
3/17 Virtual Memory (part 3): Paging techniques: fault resumption, lazy loading, stack growth, heap growth, mmap() (pdf) (ppt)
3/20 Virtual Memory (part 4): Paging techniques: copy-on-write, page eviction, managing swap space, frame locking (pdf) (ppt)
3/22 Virtual Memory (part 5): physical memory management, page eviction strategies. (pdf) (ppt)
3/27 Virtual Memory (part 6): page eviction strategies: OPT, FIFO, LRU, clock algorithms (pdf) (ppt)
3/29 Virtual Memory (part 7): page buffering, local replacement, thrashing (pdf) (ppt)
3/31 Virtual Memory (part 8): working set, Clock-PRO, segmentation (pdf) (ppt)
4/3 User-level Memory Management, User-level Threads vs Kernel-level Threads (pdf) (ppt)
4/5 Hybrid Threading Models, Disks (part 1) (pdf) (ppt) Stallings 11.1-11.5, 11A
4/7 Buffer Cache (pdf) (ppt)
4/10 Filesystems, part 1: overview, in-memory data structures, prefetching (pdf) (ppt) Stallings 12.1-12.7
4/12 Filesystems, part 2: file allocation strategies, DOS-FAT, multilevel indices (pdf) (ppt)
4/14 Filesystems, part 3: directories (pdf) (ppt)
4/17 Filesystems, part 4: consistency & write ordering (pdf) (ppt)
4/19 Filesystems, part 5: logging filesystems, filesystem interfaces, volume management (pdf) (ppt) Stallings 11.6
4/21 RAID; Security & Protection, part 1 (pdf) (ppt) Stallings 16.1-16.5
4/24 Security & Protection, part 2; Networking, part 1: introduction (pdf) (ppt) Stallings 13
4/26 Networking, part 2: types of networks, delay (pdf) (ppt)
4/28 Networking, part 3: layered architectures (pdf) (ppt)
5/1 Networking, part 4: BSD sockets, UDP & TCP (pdf) (ppt)