MTL458: Operating Systems

Spring semester, 2020-21


Time of the class:
Mondays and Thursdays 9:30 to 10:50.

Office hours:
by email appointment.

Teaching assistants:
Priyamvada: maz178310@maths.iitd.ac.in
Abhay Saxena: mt6160648@maths.iitd.ac.in
Pavani: mt6160677@maths.iitd.ac.in


Syllabus:
The course, as the name suggests, will be about operating systems. It will broadly cover the following topics: operating system functions, basic concepts of abstraction, notion of a process, process execution, scheduling, memory management, multiprogramming, deadlocks, semaphores, file system, I/O devices and their management.

Course Material:
We will be following the book Operating Systems: Three Easy Pieces (OSTEP) for the most part, which is freely available online. I will be putting the links to the relevant chapters on this page after the lectures.

I might sometimes refer to some other material, in which case I will mention that. Students can also refer to these additional texts.
  1. Operating System Concepts (Wiley)
    by Silberschatz, Galvin, and Gagne
  2. Operating Systems | Internals and Design Principles (Pearson)
    by William Stallings
  3. Modern Operating Systems (Pearson)
    by Tenanbaum

Credits:
Attendance of 75% is required to get credits for the course.
The course will be evaluated on a 100 point scale.
There will be 4-5 assignments, which will together make up 25 points.
The minor and major will be worth 30 and 45 points respectively.
To pass the course (i.e., to get a D grade), you need to have at least 30 points.
To audit pass the course, you need to have at least 40 points, at least 15 of which have to come from the minor and at least 20 from the major.

Edit: Keeping in mind the pandemic, the audit pass criteria has been changed to be same as passing criteria for the course (for D grade). Also, the attendance requirement has been removed.


Lectures:
  1. Lecture 1: On 04/02/2021 Topic: Introduction to Operating Systems. Reference: OSTEP, Chapter 2.
  2. Lecture 2: On 08/02/2021 Topic: The Process. Reference: OSTEP, Chapter 4.
  3. Lecture 3: On 11/02/2021 Topic: Process API. Reference: OSTEP, Chapter 5.
  4. Lecture 4: On 18/02/2021 Topic: Mechansisms for LDE: Context Switch. Reference: OSTEP, Chapter 6.
  5. Lecture 5: On 22/02/2021 Topic: Scheduling. Reference: OSTEP, Chapter 7.
  6. Lecture 6: On 25/02/2021 Topic: MLFQ. Reference: OSTEP, Chapter 8.
  7. Lecture 7: On 01/03/2021 Topic: Memory Virtualization and API. Reference: OSTEP, Chapter 13 and Chapter 14.
  8. Lecture 8: On 04/03/2021 Topic: Adress Translation. Reference: OSTEP, Chapter 15.
  9. Lecture 9: On 08/03/2021 Topic: Segmentation. Reference: OSTEP, Chapter 16.
  10. Lecture 10: On 11/03/2021 Topic: Free Space Management. Reference: OSTEP, Chapter 17.
  11. Lecture 11: On 20/03/2021 Topic: Paging. Reference: OSTEP, Chapter 18.
  12. Lecture 12: On 22/03/2021 Topic: TLB. Reference: OSTEP, Chapter 19.
  13. Lecture 13: On 25/03/2021 Topic: Advanced Paging. Reference: OSTEP, Chapter 20.
  14. Lecture 14: On 01/04/2021 Topic: Swapping: Mechanisms and policies. Reference: OSTEP, Chapter 21 and Chapter 22.
  15. Lecture 15: On 05/04/2021 Topic: Concurrency: Threads and Threads API. Reference: OSTEP, Chapter 26 and Chapter 27.
  16. Lecture 16: On 08/04/2021 Topic: Locks. Reference: OSTEP, Chapter 28.
  17. Lecture 17: On 12/04/2021 Topic: Condition Variables. Reference: OSTEP, Chapter 30.
  18. Lecture 18: On 15/04/2021 Topic: Semaphores. Reference: OSTEP, Chapter 31.
  19. Lecture 19: On 19/04/2021 Topic: Common concurrency bugs. Reference: OSTEP, Chapter 32.
  20. Lecture 20: On 22/04/2021 Topic: I/O devices. Reference: OSTEP, Chapter 36.
  21. Lecture 21: On 26/04/2021 Topic: Hard disk drives. Reference: OSTEP, Chapter 37.
  22. Lecture 22: (Asynchronous) Topic: RAIDs. Reference: OSTEP, Chapter 38.
  23. Lecture 23: (Asynchronous) Topic: File System. Reference: OSTEP, Chapter 39.
  24. Lecture 24: (Asynchronous) Topic: File System Implementation. Reference: OSTEP, Chapter 40.