Lectures: LH 101, Slot 1 (Mon 8:30-9:25, Tue 9:30-10:25, Thu 10:35-11:30)
Lab: Software Lab 2, Thu 2-5 pm
Instructor: Mythili Vutukuru (mythili @ cse.iitb.ac.in)
Instructor Office Hours: After lecture, or during the lab.
This is a core course, open to 3rd year CSE B.Tech. students only. The theory part of the course (CS347) covers the fundamentals of modern operating systems. The accompanying lab (CS333) will reinforce the concepts taught in class using programming exercises.
All examinations will be closed notes and closed book. No calculators will be required. There will be no make-up exams, unless in the case of emergencies. Any form of cheating will not be tolerated during the tests.
CS333 will have 12 labs, roughly one per week. 8 of the labs are take-home labs and 4 are lab quizzes.
Take-home labs: The take home labs are mainly designed to help you learn the lab material at your own pace; they need not be solved and submitted within the three hour lab slot. You can solve the take-home labs in groups of one or two students. If you solve the lab in a team, you are both expected to contribute equally to the assignment. You may discuss and brainstorm with your friends, but the final writeup and code must be yours. You can bring your own laptops and use them for the take home labs. You are strongly encouraged to work in the lab during the lab slot even during the weeks when the lab assigned is a take-home lab. Most take-home labs will span multiple weeks, and will take more than 3 hours to solve. Therefore, it will be most useful for you to start working on the lab before the allocated lab slot; the lab slot can then be used to get your doubts cleared by the TAs and instructor. Needless to say, any plagiarism or copying of code will not be tolerated.
Lab quizzes: The lab quiz will have to be solved and submitted within the three hour lab slot itself. The labs will be designed in a way that you can complete the lab in 3 hours, provided you have sincerely attempted the related take-home labs. No extensions will be permitted. You must solve the lab individually, without discussing with anyone. You must use the lab machines only, not your own laptops. There will be no network access during the tests, so you will not have access to any online resources. Please get comfortable using man pages and such to write code on your own. Any form of cheating will not be tolerated during the lab quizzes.
The following are tentative dates for the 4 lab quizzes: Aug 18, Sep 1, Oct 6, Oct 27.
The grade distribution will be roughly as follows:
The practice questions below will reinforce your understanding of the lecture material. These problems sets are for your practice only; they need not be submitted.
|lab1.pdf, lab1_files.tgz||Basics of OS, Linux, processes.||July 24|
|lab2.pdf, lab2_files.tgz||Building multi-threaded and multi-process applications.||Aug 7|
|lab3.pdf, lab3_files.tgz||Building a custom shell, process lifecycle management.||Aug 17|
|lab5.pdf||New scheduler in xv6.||Sep 25|
|lab6.pdf||Copy-on-write fork in xv6.||Oct 2|
|lab7.pdf||Understanding features of modern filesystems.||Oct 16|
|lab8.pdf||Building a new userspace filesystem.||Oct 23|