CS 1550: Introduction to Operating Systems

Programming Assignments


The Assignments

Assignment 1 - Writing a shell (Solution will be handed out after Monday, 17 Jan. 2005)

Assignment 2 - The NACHOS Survey (Due Date: Wednesday, 26 Jan. 2005)

Assignment 3 - The Office Hours problem and the Safe-deposit Box problem (Due Date: Monday, 21 Feb. 2005)

Assignment 4 - NACHOS: Virtual Memory (Due Date: Wednesday, 23 Monday 28 Mar. 2005)

Assignment 5 - NachOS Multiprogramming (Due Date: Monday, 18 Apr. 2005 for pairs and Saturday, 23 Apr. for singles)


Development environment

The department's Java Lab has been set up with all tools necessary for the assignments. Instructions for logging into the lab's computers can be found at http://www.cs.pitt.edu/~mcraven/courses/unixintro.html.

All assignments will require programming in C/C++ in a Unix environment.

A source-level debugger such as gdb can be very handy for finding and fixing program errors. For instructions on how to use gdb, please consult this primer.

All assignments after the first one will use Nachos, an educational operating system that runs on a simulated processor. For a Nachos tutorial, please attend the recitations. The slides can be downloaded from the following links: pdf, ppt .

The Nachos homepage, including downloads, is available at  http://www.cs.washington.edu/homes/tom/nachos/ .

Nachos is already available in the Java Lab, so there is no need for you to install it in your own computer.


Getting help

The recitation instructor, Matt Craven, will in his classes be going into a lot of detail about how to access the Java Lab and use its tools for solving the assignments.

His slides and helpful links can be found at http://www.cs.pitt.edu/~mcraven/courses/cs1550.html.

He is also available to help you during office hours, MWF 1-3 p.m. His office is at SENSQ 6509, and his email address is mcraven@cs.pitt.edu.


Coding Style

Good coding style is very important. You will be expected to conform to good practices in writing and documenting your code. Good primers on C/C++ style can be found in the following link. The first one is particularly good.


Grading Policy

We will grade programming assignments based on correctness, completeness, and clarity of the code and documentation. A perfect assignment is one that solves the entire problem in an elegant manner, and provides well documented, easily understood code. A correct solution is necessary for a satisfactory grade, but incomplete solutions, sloppy code, and poor documentation will result in less than full credit.

Late assignments will be penalized 10 points per day (weekends excluded). Start assignments early and avoid running out of time.

Be advised that you will be required to demo your solutions. The grader may ask you to explain any details in your code, and may ask you to change something. If you are unable to explain or modify your program properly, you may get a failing grade.


Handing in Assignments

Please follow these instructions to submit each assignment, where <n> is the assignment's number (for example, 2 for the second experiment):