Operating Systems


Written assignments must be handed in to the handin bin by 10pm on the given due date.

Programs must be handed in by 11:59pm on the given due date

For all the Weenix related projects, we will not be posting individual assignment pdfs. Please instead see the docs/ folder in the weenix sources. A copy of the pdf will be posted here for your convenience.

Practice Midterms

2015 (solution)
2016 (solution)
2017 Solution

Practice Finals

2015 (solution)
2016 (solution)
2017 solution


Homework 1 (solution) Feb 8 Feb 15
Homework 2 (solution) Mar 3 Mar 10
Homework 3 (solution) Apr 3 Apr 10
Homework 4 (solution) Apr 26 May 3


The first program, Shell, is similar to the CS33 project. It's an optional assignment for students who did not take CS33 and/or could use a C refresher.

As mentioned above, for Weenix projects (VFS and S5FS) we will not post individual PDFs; for each project, please see the corresponding section in the weenix documentation PDF. Also, the Introduction section and Appendices B and C are useful in general.

ProgramOutDueHelp Session
Shell(optional)Jan 25Feb 1
UThreadsJan 27Feb 8*Jan 31 (Slides)
MThreadsFeb 15Mar 3Feb 16(Slides)
VFS Mar 8 Apr 12 Mar 9 (Slides)
S5FSApr 12May 5Apr 13
* Those who do Shell must submit UThreads by Feb. 13.

For your convenience, here is a copy of the Weenix PDF which can be acquired by running make all in doc/latex in the Weenix source tree: Weenix PDF

169 Programs

Students taking 169 only need to complete UThreads and MThreads. Weenix will make up the remainder of the 169 programming requirements. Note that all sections are out on Jan 30 and there is one due date on May 9 for the whole project. The dates for each section are the recommended start and end dates, given the relative sizes of each section.

SectionOutDueHelp Session
Processes Jan 30 Feb 13 Feb 2 (slides)
Drivers Feb 13 Feb 22 Feb 15 (slides)
VFS Feb 22 Mar 13 Feb 23 (slides)
S5FS Mar 13 Apr 10 Mar 16 (slides)
VM Apr 10 May 9 Apr 18 (slides)