Homework
Four individual homework sets, each a PDF with its LaTeX source in hw/. Deadlines are at noon IST.
| Homework | Questions | Due |
|---|---|---|
| Homework 1 | Creating a user on the course VM; a fork bomb, and capping the number of processes per user; command-line arguments in a child process; a weighted scheduling metric for SJF, LJF, STCF and round robin; the default Linux scheduler. | 17 Aug, noon |
| Homework 2 | FIFO, random, LRU and optimal page replacement on a 90–10 workload; virtual-to-physical address translation; a memory-user program (OSTEP chapter 13, questions 3 and 4). | 17 Sep, noon |
| Homework 3 | A concurrent B-tree and its scaling with threads; a readers–writer lock (bonus); dining philosophers with condition variables; comparing a dining-philosophers solution. 6 marks, up to 8 with the bonus. | 6 Nov, noon (postponed from 5 Nov) |
| Homework 4 | Distributions of file counts and sizes; tracking inodes over time; OSTEP chapter 37, question 4 and chapter 38, question 5; a read-only mount. 6 marks. | 27 Nov, noon |
Submission rules
These rules are printed on every homework sheet.
- Deadlines are hard: the upload form closes at noon and there are no extensions.
- Type the answers, create a PDF and upload it on the form. Only PDF files are accepted.
- Name the file
{branch}_{roll_number}_{name}.pdf. - Put all code and Jupyter notebooks in secret GitHub gists and link them in the PDF.
- Cheating and plagiarism are not tolerated.
- Cite all pertinent references in IEEE format.
- The least count of grading is 0.5 marks.
- The course VM is linked from the home page.
The sample code for random page replacement mentioned in Homework 2 is code/replacement-random-plot.py.