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
-
Textbook - Operating System Concepts 6th Edition.
Silberschatz, Galvin, and Gagne. John Wiley and Sons, 2002.
-
The textbook being sold in the UW Bookstore
is the "Windows XP Update" of the 6th edition.
It does not matter whether you have the Windows XP Update of
the 6th edition or the original 6th edition.
Apparently, the only difference between the two is a new appendix
that is included in the XP Update version.
-
Book's authors' web page, including
errata (PDF)
-
Lecture Notes - see below.
-
Course Email - cs350@student.cs.uwaterloo.ca
-
Course Newsgroup - uw.cs.cs350
Read the newsgroup regularly. The web page contains on-line
copies of the course handouts, readings, assignments and other
related resources.
-
Homepage - http://www.student.cs.uwaterloo.ca/~cs350/F04
- Handbook Description
- Calendar Description
-
Evaluation:
- Assignments: 35% (10/15/10)
- Midterm Exam: 20%
- Final Exam: 45%
To obtain a passing mark in the course, the weighted
average of the two exams
must be at least 50%. Otherwise the weighted
average of the two exams is used for the final
grade.
Exams
As the examinations near, more information will be posted here.
- Final Exam
- Midterm Exam
- Main sitting: 1900-2100, Thursday, 28 Oct 2004
- Alternative sitting: Contact Tutors
- Testable material includes everything covered in lectures
up to and including "Processor Scheduling".
- Exam-related Study Documents
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
-
- Due: 1200, Wednesday, 22 Sept 2004
- Assignment 0 is to organize and register your project group.
To do so, you should follow the instructions
in the Forming Groups document.
- 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
- Assignments
- Contact the TA who marked your assignment (a list will be posted to the newsgroup and/or announcement page for each assignment).
Your TA will be able to help explain the marking, and, if needed, make small adjustments to the mark.
- If you are not satisfied after talking with your TA, fill out a reappraisal form and follow the procedure listed below for exams.
- Examinations
- If you have an 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 in question and hand that in to a tutor or
instructor. The entire exam 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 are available for purchase at Pixel Planet
(MC2018).
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
-
- Concurrency and Synchronization
-
- Chapter 4, Section 4.4
- Chapter 7, except Section 7.9
- Chapter 8
- Virtual Memory
-
- Processor Scheduling
-
- 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
-
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)