UW Logo

CS350: Operating Systems



Announcements   |   Contents   |   Lectures   |   Course Personnel
General Info   |   Exams   |   Assignments   |   Nachos Info
Reappraisals   |   Lecture Notes   |   Reading List   |   Visual CS350   |   Useful Links


Section 1       08:30 - 09:50       Tuesday, Thursday       MC 4059       David Taylor Office Hours Mon/Tues 10-11, Fri 11-12 MC 5116
Section 2 10:00 - 11:20 Tuesday, Thursday MC 1056 Eugene Zima Office Hours Thurs 4 - 5 pm DC 2304
Section 3 11:30 - 12:50 Tuesday, Thursday MC 4020 Tim Brecht Office Hours Tues/Thurs 1:45 - 2:15 DC 3508
Section 4 14:30 - 15:50 Tuesday, Thursday MC 4059 Tim Brecht Office Hours Tues/Thurs 1:45 - 2:15 DC 3508

Course Personnel

Office Hours
David Pariag Head TA DC 3308 x3151 db2paria at math.uwaterloo.ca Wednesday 10:00-11:00
Jason Selby TA DC 3548A x4822 j2selby at uwaterloo.ca Monday 10:00-11:00
Ben Korvemaker TA DC 2509 N/A bfkorvem at uwaterloo.ca Tuesday 1:00-2:00
Matt Nichols TA DC 3509 x3509 mjnichol at math.uwaterloo.ca Thursday 1:30-2:30
Richard Jang TA DC 3515 x3522 rjang at math.uwaterloo.ca Friday 11:30-12:30
Bradford Hovinen TA DC 2302B x5390 bghovinen at math.uwaterloo.ca No regular hours
(But see website)
Xuhui Li TA DC 3543 x3628 x5li at uwaterloo.ca None
Feng Jiao TA DC 2306B x 5389 fjiao at math.uwaterloo.ca None
Erin Lester TA DC 2125 N/A eclester at cgl.uwaterloo.ca None
Alex Stewart TA DC 2302B x5390 am2stewa at uwaterloo.ca None
Ian Rutherford TA N/A N/A ijrutherford at math.uwaterloo.ca None
Qiang Wang TA N/A N/A q6wang at math.uwaterloo.ca None

General Information


NOTE: In addition to materials from class; the text; and course readings, exam questions will also include Nachos specific questions. Group members are responsible for ensuring that they understand all aspects of Nachos, including those portions implemented by other group members.


Course assignments are based on Nachos. Nachos consists of an simulator for a MIPS-based workstation plus a rudimentary operating system for that workstation, implemented in over 10,000 lines of C++. Nachos comes originally from UC Berkeley and has been modified for use at Waterloo.

Assignments may be done individually or in groups of 2 or 3 (groups of 3 is recommended). If you want a partner but do not have one, post to and/or read the course newsgroup to find one. Assignment 0 is to register your group.

Code for the assignments must be submitted electronically; documentation is to be prepared using a text formatter and good-quality printer and must be handed in as printed output. Your design documentation MUST use the marking guide as the cover page. See the general assignment information handout for more information.

Discussing assignments with other students is allowed, even encouraged, but work handed in must be that of the individual or group. The standard penalty for copying an assignment or allowing an assignment to be copied is a mark of -100% for that assignment.

Do not leave assignments until the last week. Start early!
Remember: late assignments receive a grade of 0%.

Assignment 0
Assignment 1
Assignment 2
Assignment 3

Nachos and Related Information

Installing Nachos
How to get started by installing Nachos in your account.
Nachos Operating System Overview
A quick tour through the operating system for the simulated workstation.
Nachos Workstation Overview
A quick tour through the simulated workstation.
Working in Groups
Some information about working in groups in CSCF's Unix environment. This includes information about file access control, and some suggestions for sharing Nachos files among the members of a group.
Unix File Permissions
Find out what various file permissions mean and how to manipulate them.
Debugging Nachos
A tour through Nachos' built-in debugging facilities, and how to get started running Nachos under GDB.
Cyclic Include Files
There are dependancies among the header files used in Nachos. Adding one #include can make your code not compile. Find out more.
Running Nachos on Linux
Some information for those who would like to run Nachos at home on a Linux PC.
Nachos Tutorial Slides
PDF version of the slides used in the Nachos tutorial

Non-UW Nachos Material
Nachos Overview Paper
This is a paper about Nachos by the authors of Nachos. It describes the ideas behind Nachos and discusses the assignments as they once existed. The assignments currently being used at Waterloo are different from the ones described in this paper.
Overview of MIPS registers
A description of all the MIPS registers and a mapping between the numeric and symbolic names for them.
Road Map Through Nachos by Thomas Narten
This is a more detailed overview of Nachos, written by Thomas Narten. Previous classes have found it useful. However, you should be aware of several things before reading this. First, it describes an older version of Nachos than the one installed at UW. The descriptions are still mostly relevant, but there have been some changes. Second, the UW versions of the Nachos projects differ from others, including Narten's. Don't take assignment-specific comments too literally. A Postscript version of the Road Map is also available, perhaps unofficially.


Not that we think that there is a big need for this but for those cases where it is necessary - if you have an assignment or exam that you would like to have reappraised you must use the form provided below. Print this form, fill it out, staple it to the exam or assignment in question and hand that in to your instructor. The entire exam/assignment will be reevaluated and your grade may be raised or lowered. Please look at the grading, remember that it's not an exact science/art and that while you may have deserved a few marks more on one question you may have been given more marks than you deserve on another question. Also please think about whether your final grade will actually be modified if the grade on an individual piece of work is changed.

Note that requests for reappraisal will not be accepted on the same day that work is returned. Unless otherwise specified, you have two weeks from the date that the work was returned to file a request.

Request for Reappraisal Form

Lecture Notes

Lecture notes Part I and II are available for purchase at the DC copy center (outside of the Davis Center Library).

Reading List

The following readings are from the course textbook.
Background and Overview
  • Chapter 1
  • Chapter 2
  • Chapter 3
Processes and Threads
  • Chapter 4, Sections 4.1-4.3
  • Chapter 5
Memory Management
  • Chapter 9
Concurrency and Synchronization
  • Chapter 4, Section 4.4
  • Chapter 7, except Section 7.9
  • Chapter 8
Virtual Memory
  • Chapter 10
Processor Scheduling
  • Chapter 6
  • Chapter 13
  • Chapter 14, except Section 14.7
File Systems
  • Chapter 11
  • Chapter 12, except Section 12.9
Interprocess Communication and Networking
  • Chapter 4, Sections 4.5-4.6
  • Chapter 18
  • Chapter 19

Visual support

Visual CS 350

Useful Links

Programming and Source Code Control Tools


Last Modified: 17 March 2004
CS350 Web master (cs350@student.cs.uwaterloo.ca)