CPSC 457: Operating Systems

Professor Carey Williamson

Winter 2010

Assignments

CPSC 457 will have four programming assignments. In aggregate, the assignments count 30% toward your final grade in CPSC 457. Each assignment will be graded on a percentage scale. All assignments will be equally weighted, even though they might not be of equal difficulty.

Assignments are to be done individually.

Some possible ideas for assignments are: writing a shell command interpreter; adding a new system call to the Linux kernel; implementing size-based scheduling in the Linux kernel; evaluating file system space allocation policies; designing a simple encrypted file system; and elevator scheduling policies for disk subsystems.

Assignment solutions are to be submitted directly to your assigned TA via email, on or before the stated deadline.

Assignment 1: Shell Programming and C Programming

Assignment 1 is available here. It was due on Monday, February 1 at 11:59pm.

Here are some example solutions from selected students and myself:
numfiles.sh numbytes.sh larger.sh morefiles.sh numbytes.c

Assignment 2: Process Management

Assignment 2 is available here. It was due on Monday, March 1 at 11:59pm.

Here is an example solution courtesy of student Patrick O'Donnell:
README pid.c unistd_32.h syscall_table_32.S PIDspacer.c unistd.h Transcript

Assignment 3: Memory Management

Assignment 3 is available now. It was due on Monday, March 22 at 11:59pm.

Here is an example solution courtesy of student Chenzhe Qian:
README boot.sh fork.c user.c unistd_64.h sharedVmExample1.c sharedVmExample2.c Output

Assignment 4: Storage and I/O Systems

Assignment 4 is available now. It is due on Monday, April 12 at 11:59pm.

Extension granted to Wednesday, April 14 at 11:59pm.

Here is an example solution courtesy of student Bon Adriel Aseniero:
README stasher.c client.c client output server output