Lecture Slides and Reading Assignments

Date Lecture Reading Assignment
8/26 Administration (pdf) (ppt) Silberschatz skim chapter 1 and 2, read 1.5
8/28 Introduction to OS (part 1) (pdf) (ppt)
9/2 Introduction to OS (part 2), Project 0,
Threads & Processes (part 1)
(pdf) (ppt) Silberschatz read chapter 3.1-3.5
9/4 Threads & Processes (part 2): context switching (pdf) (ppt)
9/9 Threads & Processes (part 3): process states, priority-based scheduling process & thread APIs, fork/join, multithreading & languages (pdf) (ppt)
9/11 Concurrency & Synchronization (part 1): race conditions, critical section problem, disabling interrupts approach (pdf) (ppt) Silberschatz 6.1-6.4
9/16 Concurrency & Synchronization (part 2): implementing locks & semaphores on uniprocessors (pdf) (ppt)
9/18 Concurrency & Synchronization (part 3): semaphores (pdf) (ppt) Silberschatz 6.1-6.8
9/23 Concurrency & Synchronization (part 4): locking strategies (pdf) (ppt)
9/25 Concurrency & Synchronization (part 5): monitors, nonblocking synchronization (pdf) (ppt) Silberschatz 6.1-6.8
9/30 Multiprogramming Basics: linking and loading, virtual address spaces, context switching & page tables (pdf) (ppt) Silberschatz 2.1-2.4
10/7 Deadlock: detection, prevention, and avoidance. (pdf) (ppt)
10/9 Scheduling (part 1): Intro, FCFS, Round-robin, SPN, MLFQS (pdf) (ppt)
10/14 Scheduling (part 2): Linux kernel scheduler, Lottery Scheduling, Stride Scheduling, Real-time Scheduling (pdf) (ppt)
10/16 Virtual Memory (part 1): address translation, page tables, TLB (pdf) (ppt) Silberschatz 8 and 9
10/21 Virtual Memory (part 2): page table implementations, hierarchical page tables, inverted page tables. Paging techniques: fault resumption, lazy loading, stack growth. (pdf) (ppt)
10/23 Virtual Memory (part 3): Paging techniques: heap growth, mmap(), copy-on-write, page eviction, managing swap space, frame locking. (pdf) (ppt) Silberschatz 12.6
10/28 Virtual Memory (part 4): Physical memory management. Fragmentation. Page replacement strategies: OPT, FIFO, LRU, and clock algorithms. (pdf) (ppt)
10/30 Virtual Memory (part 5): VM design issues: working set principle, thrashing, locality, page buffering. Segmentation. (pdf) (ppt)
11/4 File Systems (part 1): Disks & Buffer Cache (pdf) (ppt)
11/6 Filesystems (part 2): overview, in-memory data structures, file allocation strategies, DOS-FAT, multilevel indices (pdf) (ppt) Silberschatz 10-11
11/11 Filesystems (part 3): directories, name resolution (pdf) (ppt) Silberschatz 10-12
11/13 Filesystems (part 4): fault tolerance & consistency (pdf) (ppt)
11/18 Filesystems (part 5): filesystem interfaces, volume management, RAID, advanced techniques (ZFS) (pdf) (ppt)
11/20 Multithreading in user processes: user-level vs. kernel-level threads (pdf) (ppt)
12/2 Security & Protection (pdf) (ppt) Silberschatz 12-13
12/4 Virtualization (pdf) (ppt) Silberschatz 14-15