UW Logo

CS350: Operating Systems

Fall 2004

Please visit this page regularly for course updates!

Contents

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

Lectures

Section
Time
Days
Location
Instructor
Office Hours
001       08:30 - 09:50       Tuesday, Thursday       MC 4059       David Taylor 9:00 - 10:00 Monday
(appointments: x3476 or cdonovan@math)
002 11:30 - 12:50 Tuesday, Thursday MC 4021 Stan Devitt TBA

Course Tutors

Name
Office
Phone
Email
Office Hours
Michael DiRamio      MC 4065     N/A   cs350@student.cs Exam Hours - see newsgroup
Omar Nafees      DC 3120     N/A   cs350@student.cs Mon 13:00-14:30, Tue 13:00-14:30, Wed 10:30-12:00

General Information


Exams

As the examinations near, more information will be posted here.

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.


Assignments

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.

On a related note, it is possible that a group may desire to break-up for a number of reasons. There are policies for such a situation. Make sure you know them.

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.

Reappraisals

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 are available for purchase at Pixel Planet (MC2018).

Topic
  1-up Slides  
  2-up Slides  
Introduction PDF PS PDF PS
Processes PDF PS PDF PS
Synchronization PDF PS PDF PS
Memory Management PDF PS PDF PS
Nachos PDF PS PDF PS
Virtual Memory PDF PS PDF PS
Scheduling PDF PS PDF PS
I/O PDF PS PDF PS
File Systems PDF PS PDF PS
Interprocess Communication and Networking PDF PS PDF PS
Security PDF PS PDF PS

Suplemental material in the form of additional slides on some topics can be found here:




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
I/O
  • 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
Security
  • Chapter 18
  • Chapter 19

Visual support

Visual CS 350


Useful Links

Programming and Source Code Control Tools

Miscellaneous


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