CS 475: Operating Systems
Instructor: David Chiu
Lecture: Mon/Wed/Fri 3:00 - 3:50 in TH 409
Office Hours: Drop-in or by appointment (scan QR code at my door)
Class Resources
- Course Syllabus
- Notes and Sample Code (on Canvas)
- Textbook (Free): Suzanne J. Matthews, Tia Newhall, Kevin C. Webb. Dive into Systems.
- Textbook: Silberschatz, Galvin, and Gagne. Operating Systems Concepts 8th edition or higher.
Homework
- Hwk 1 (vscode): Setting up VS Code (due 1/24/2025)
- Hwk 2 (Sorting): Pointers, Arrays, Strings (due 2/3/2025)
- Hwk 3 (ls2): Making System Calls (due 2/14/2025)
- Hwk 4 (dsh): David Shell (due 3/3/2025)
- Hwk 5: Parallel Edge Detection (due 3/14/2025)
Labs
Calendar (Tentative)
Wk | Mon | Tue | Wed | Thu | Fri |
---|---|---|---|---|---|
1 | 1/20 MLK Day | 1/21 | 1/22 Intro: What's an OS? | 1/23 | 1/24
|
2 | 1/27 Lab 1 (Attendance required; Bring laptops) | 1/28 | 1/29 Lab 2 (Attendance required; Bring laptops) | 1/30 | 1/31 Lab 3 (Attendance required; Bring laptops) |
3 | 2/3
| 2/4 | 2/5 Invoking the OS: Bootstrapping, interrupts | 2/6 | 2/7 Invoking the OS: Interrupts, traps and system calls |
4 | 2/10 Processes: PCB, address space, program stack | 2/11 | 2/12 Processes: state transitions | 2/13 | 2/14
|
5 | 2/17 Processes: exec() system call | 2/18 | 2/19 Processes: wait(); zombies and orphans | 2/20 | 2/21 Threads: motivation and kernel support |
6 | 2/24 Threads: pthread library | 2/25 | 2/26 | 2/27 | 2/28 |
7 | 3/3
| 3/4 | 3/5 Scheduling: goals and metrics; FCFS, SJF | 3/6 | 3/7 Sched: RR, SRTF, MLFQ |
8 | 3/10 Sched: hyperthreading, multicore considerations | 3/11 | 3/12 Sync: critical section problem | 3/13 | 3/14
|
9 | 3/17 | 3/18 | 3/19 | 3/20 | 3/21 |
10 | 3/24 Sync: blocking locks | 3/25 | 3/26 Sync: semaphores | 3/27 | 3/28 Sync: more semaphores |
11 | 3/31 Sync: monitors and condition variables | 4/1 | 4/2 Sync: Java support | 4/3 | 4/4 |
12 | 4/7 | 4/8 | 4/9 Memory Management: virtual addressing | 4/10 | 4/11 MM: partitioning and segmentation |
13 | 4/14 MM: segmentation | 4/15 | 4/16 MM: paging | 4/17 | 4/18 MM: TLB and page faults |
14 | 4/21 Virtual Memory: demand paging | 4/22 | 4/23 VM: page faults | 4/24 | 4/25 VM: Clock algorithm |
15 | 4/28 VM: memory allocation | 4/29 | 4/30 VM: malloc(), free() | 5/1 | 5/2 Reading Period |
16 | 5/5
| 5/6 | 5/7 | 5/8 | 5/9 |