CS3500: Operating Systems
Course information
When: Jul-Nov 2023
Lectures: Slot D
Where: SSB134 for the lectures and DCF for the lab
Teaching Assistants: YSS Narasimha Naidu, Sasubilli Yuvan, Bharath Reddy, Aashay Bharatkumar Shah, Ashok Rajeev, Ayush Kumar Mall Chinmay Badjatya, Devmalya Roy, Hrishikesh Tiwari, Mathew Thomas, Prince Dineshbhai Patel, Susmit Jaiswal, Tulsi Ram Meena
Textbooks/References
Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. Operating systems: Three easy pieces. Arpaci-Dusseau Books, 2018.
Course Content
Virtualizing the CPU: Chapters 4-9 of the text
Virtualizing the memory: Chapters 13-22 of the text
Concurrency: Chapters 26-32 of the text
Persistence: Chapters 36-40 of the text
Labs
The lab exercises will either be standalone implementations of OS features (e.g. scheduling, file system, etc), or changing the xv6 OS, e.g., to add new system calls, change the memory management scheme, etc. We shall be using the RISC-V version of xv6, see here.
Grading
Quiz-I and II: 10% each
Final exam: 30%
Labs: 40% split over seven assignments
Tutorials: 8% split over two
Class participation: 2%
Important Dates
Quiz-I: 31 Aug
Quiz-II: 12 Oct
Final exam: 22 Nov
Dates as per the the academic calendar
Schedule
Lecture number | Topics Covered | Chapter reference |
---|---|---|
Lecture 1 | Intro to OS: virtualizing cpu | Chapter 2 |
Lecture 2 | Intro to OS: virtualizing memory, concurrency | Chapter 2 |
Lecture 3 | Intro to OS: persistence The process abstraction | Chapters 2, 4 |
Lecture 4 | Process API: fork, exec | Chapter 5 |
Lecture 5 | Limited direct execution: Basics, restricted operations | Chapter 6 |
Lecture 6 | Limited direct execution: process switchingIntro to process scheduling | Chapters 6, 7 |
Lecture 7 | Process scheduling | Chapter 7 |
Lecture 8 | Multi-Level Feedback Queue | Chapter 8 |
Lecture 9 | Multi-Level Feedback Queue | Chapter 8 |
Lecture 10 | Introduction to shell commands | |
Lecture 11 | Proportionally fair scheduling | Chapter 9 |
Lecture 12 | Proportionally fair scheduling Discussion questions | Chapter 9 |
Tutorial 1 | ||
Lecture 13 | Introduction to memory virtualization | Chapter 13 |
Lecture 14 | Address translation | Chapter 15 |
Quiz 1 | ||
Lecture 15 | Segmentation | Chapter 16 |
Lecture 16 | Segmentation Discussion questions | Chapter 16 |
Lecture 17 | Free-space management | Chapter 17 |
Lecture 18 | Introduction to paging | Chapter 18 |
Lecture 19 | Paging: Page table entry, an example | Chapter 18 |
Lecture 20 | Translation lookaside buffers | Chapter 19 |
Lecture 20 | Advanced page tables: segmentation+paging | Chapter 20 |
Lecture 21 | Advanced page tables: multi-level page tables | Chapter 20 |
Lecture 22 | Page fault handlers | Chapter 21 |
Lecture 23 | Page replacement algorithms | Chapter 22 |
Lecture 24 | Complete VM systems: VAX/VMS | Chapter 23 |