Unless otherwise noted, all assignments are due at noon EST and should be submitted via CourseWorks.

Written assignments count for 30% of the assignment score, programming (kernel) assignments for 70%.

Written Assignments

Please submit written assignments using the following procedure. Deviating from this will result in a loss of points!

File Format:
PDF or plain text (.txt) file.
Name format:
hwkn.your UNI.file format, where n is the homework assignment number and the file format is pdf or txt.
Submit to the Courseworks Shared Files folder, under the corresponding assignment.

For example, Albert Tsai with UNI agt2105 would submit "hwk4.agt2105.pdf" to the "Assignment 4 Submission" folder.

In the assignment writeup, please include your name and UNI. If you resubmit an assignment, please mention that in the submission comment field, and include a version number.

Programming Assignments

Please submit programming assignments using the following procedure. Deviating from this will result in a loss of points!

File Format:
You must submit a single file named
hwkn.your UNI.tar.gz
(e.g., hwk1.ab123.tar.gz) or your UNI.tgz.
Submit to CourseWorks Dropbox, under the corresponding TA as indicated on the class bulletin board (this will differ for each assignment).

The tar file should contain:

  1. kernel patch;
  2. README file;
  3. sample output (the Linux command "script" is useful for this);
  4. testing programs.

In addition, there will be a unique instructions for the directory structure of each submission. We will specify the subdirectories and their content for each part of the assignment.

For example, if the assignment calls for the implementation of a system call, and also the addition of a loadable kernel modules, we will say in the assignment that subdirectory p1 contains the code pertaining to the system call, and subdirectory p2 has the code for the module.

Your README file should contain:

  1. The full list of the members of your group;
  2. Which VM you want us to test on;
  3. The username and password, if you have changed them from the default;
  4. Description of what changes you made to the kernel;
  5. How to run your test programs;
  6. What the expected output should be.

For each programming part, if your program(s) do not work, you must submit file named nonworking.txt. Inside this file, you need to describe what problems you ran into, where your program fails (for both, include references to problematic code sections) and what you think are the reasons. Thorough explanations will help us give partial credit.


Assignment Title Due Group or individual
1 Shell January 30, 2007 group
2 Chapter 1 February 5, 2007 individual
3 System call February 16, 2007 group
4 Chapter 2 and 3 February 21, 2007 individual
5 CPU scheduling March 5, 2007 group
6 Chapter 4 and 5 March 12, 2007 individual
7 Chapter 6-9 March 29, 2007 individual
8 File system April 5, 2007 group
9 Chapter 9 and 10 April 16, 2007 individual
10 Networks April 23, 2007 group
11 Chapter 11-13 April 30, 2007 individual