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

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 switching
Intro 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