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) |