Operating Systems
CS 301 · IIT Gandhinagar · Semester I, 2018–19
CS 301 is an introduction to operating systems, organised around the three parts of the textbook: virtualisation of the CPU and memory, concurrency, and persistence. Every lecture links its slides and, for most lectures, the class recording. Labs and homework are hands-on work in C and Python on Linux.
- Instructor
- Prof. Nipun Batra
- nipun.batra@iitgn.ac.in
- Lectures
- Tuesday, Thursday and Friday, 11 am–12 noon, AB7/102
- Labs
- Wednesday
- Teaching assistants
- 3 TAs
- Textbook
- Operating Systems: Three Easy Pieces (free online)
- Course VM
- Ubuntu VirtualBox image
This offering ran from August to November 2018. Its slides, class recordings, homework, lab sheets and quiz papers remain available.
- Lectures
- 32
- Recordings
- 29 lectures
- Homework
- 4
- Lab sheets
- 9
- Quiz papers
- 3
Lectures
- 1–8Virtualisation: processes and the CPU8 lectures
- 9–16Virtualisation: memory8 lectures
- 17–26Concurrency10 lectures
- 27–32Persistence6 lectures
Questions
Which textbook does the course follow?
Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, which is free online. The course follows its three parts, and many lab and homework questions come from its chapters.
What software do I need?
Linux, either native or in a virtual machine, with GCC, GDB and htop, and Python 3 from Anaconda. The course provides an Ubuntu VirtualBox image.
How is homework submitted?
As a typed PDF uploaded on the form, named {branch}_{roll_number}_{name}.pdf, with all code linked as secret GitHub gists. Deadlines are at noon and are hard: the form closes and there are no extensions. See Homework.
Is there a project?
Yes. Project ideas are collected in a shared spreadsheet, a demo or a video has to be shown in class, and projects were graded in rounds. See Project.
Where is the code shown in class?
In the code folder: process API examples, scheduling and memory simulators, and thread examples, many of them from the textbook's own code.
References
Textbook:
- Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces (free online)
Further reading:
- Dennis M. Ritchie and Ken Thompson, The UNIX Time-Sharing System
- Maurice J. Bach, The Design of the UNIX Operating System
- Andrew S. Tanenbaum, Modern Operating Systems
- W. Richard Stevens and Stephen A. Rago, Advanced Programming in the UNIX Environment
- Michael Kerrisk, The Linux Programming Interface
Course material:
- Lecture recordings on YouTube
- Code used in class
- All resources
Teaching assistants
- Chanda
- Subisha
- Chamanvir