CS 1550: Introduction to Operating Systems

Programming Assignments


Grading Policy

In general, programming assignments are graded on correctness, completeness, and clarity of coding (good style) and documentation. A perfect assignment is one that solves the entire problem in an elegant manner, and provides well documented easily understood code. A satisfactory assignment is one that is at the very least a correct solution - but sloppy coding, incomplete solutions, and poor documentation of the code will result in points being deducted.


Coding Style

Operating Systems are among the most complex and difficult to understand software systems. As such, good coding style is very important, and you are expected to conform to good practices in writing and documenting your code.
Links to some useful C Style Guides - the first one is especially good. 

Useful Links


Getting Nachos

In the directory where you want nachos to appear (preferably "~/private" so that others cannot view your work) run the command "~jalst114/public/1550/1550-Synch.pl". A directory called cs1550 will be created with the Nachos code inside and symbolic links for the parts of the code you do not need to edit. You can rename this directory with the 'mv' command if you wish.

If you get an error when running nachos, using './nachos', such as "ld.so.1: ./nachos: fatal: libgcc_s.so.1: open failed: No such file or directory Killed" then you need to run one of the following each time you log in:


Handing in Assignments

Follow the instructions given here to submit your assignments.

The Assignments

Assignment 1 - Writing a shell (Due Date: whenever--not graded!-- but best before 17 January 2006)

Assignment 2 - The NACHOS Survey (Due Date: SUNDAY 15 January 2006)

Assignment 3 - The Office Hours and the Laundromat (Due Date: Wednesday 15 February 2006)

Assignment 4 - Multiprogramming (Due Date: FRIDAY 17 March 2006 (with 10% bonus) or monday the 20th at 9am) Read the FAQ

Assignment 5 - NachOS File System (Due Date: forthcoming)