← Back to teaching
CS3523 (Operating Systems II)
January – May 2020 · Department of Computer Science and Engineering, IIT Hyderabad
The second operating systems course: synchronisation, monitors, CPU scheduling, deadlocks, main memory, virtual memory, I/O, disks and file systems, with Linux kernel programming assignments throughout. Video lectures will be added to the YouTube channel; the Video column is a placeholder until then.
Course details
- Course code: CS3523
- Semester: January 2020 (Spring)
- Level: undergraduate core
- Credits: 3
Texts and reference material
- Silberschatz, Galvin and Gagne, Operating System Concepts
- Intel 64 and IA-32 architectures software developer manual
- Linux kernel documentation
Evaluation
- Four hardware-programming assignments and six lab assignments
- Six online quizzes
Lecture plan
Lecture blocks as taught, each spanning several class hours. Recordings are not yet on the YouTube channel.
| # | Topic | Slides | Reading material | Video |
|---|---|---|---|---|
| L0 | Course overview | lec00 overview | Study guide | not recorded |
| L1–3 | Process synchronisation | lec01-03 synchronisation | Basic Linux commands | not recorded |
| L4 | Synchronisation, part 2 | lec04 synchronisation 2 | — | not recorded |
| L5 | Monitors | lec05 monitors | — | not recorded |
| L6–9 | CPU scheduling | lec06-09 scheduling | The Linux scheduler: a decade of wasted cores (EuroSys 2016) · Cores that don’t count / slacking off (USENIX 2016) | not recorded |
| L10–11 | Deadlocks | lec10-11 deadlocks | — | not recorded |
| L12–15 | Main memory | lec12-15 main memory | Intel 64 and IA-32 software developer manual, volume 3, paging | not recorded |
| L16–17 | Virtual memory | lec16-17 virtual memory | — | not recorded |
| L18 | Virtual memory, part 2 | lec18 VM II | A narrated version of this lecture exists in Drive | not recorded |
| L19 | I/O systems | lec19 I/O | — | not recorded |
| L20 | Mass storage and disks | lec20 disks | — | not recorded |
| L21 | File systems | lec21 file systems | — | not recorded |
| L22 | File system implementation | lec22 file system implementation | — | not recorded |
Slide links open in Google Drive. Reading material without a link is third-party work — the title is given so you can find it at its publisher.
Assignments, tutorials and project
Handouts and submissions were managed in Google Classroom; titles are listed here for reference.
- Home assignment 0: audit the edX course “Introduction to Linux”
- Hardware programming assignment 1: matrix multiplication
- Hardware programming assignment 2: musical chairs
- Hardware programming assignment 3: paging on device memory
- Lab 1: getting started · Lab 3: the Linux scheduler · Lab 4: hello-world kernel module · Lab 5: the Linux virtual address space · Lab 6: page size and virtual-to-physical mapping
- Tutorial: Linux kernel debugger and process management
- Six online quizzes