Homework

Four individual homework sets, each a PDF with its LaTeX source in hw/. Deadlines are at noon IST.

HomeworkQuestionsDue
Homework 1Creating 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 2FIFO, 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 3A 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 4Distributions 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.