Operating System Design

COSC4321.03, COSC5421.03

Instructor: Tim B. Brecht
Office: Chemistry and Computer Building, Room 220 (CCB220)
Office Hours: Tuesday 2:30-3:30 pm and Thursday 1:30-2:30 pm
Class Times and Locations: Tuesday 12:30-2:30 FS 020 and Thursday 12:30-1:30 FS 109


Course Description

An operating system has four major components: process management, input/output, memory management, and the file system. This project- oriented course puts operating system principles into action. This course presents a practical approach to studying implementation aspects of operating systems. A series of projects is included, making it possible for students to acquire direct experience in the design and construction of operating system components. A student in this course must design and implement some components of an operating system and have each interact correctly with existing system software. The programming environment is C++ under Unix. At the end of this course, a student will be able to design and implement the basic components of operating systems.

Required Texts:
1) A course reader available from Department of Computer Science (CCB126).
2) The Nachos source code listing, index, and progamming documentation (CCB126).
3) Plus: Concurrent Systems: An Integrated Approach to Operating Systems, Database, and Distributed Systems, Jean Bacon, Addison Wesley, 1992.

Useful Texts:
In addition you should have (from your 3rd year course) any one of:
a) Operating Systems Concepts, 4th Edition Silbershatz and Galvin, Addison-Wesley, 1994.
b) Operating Systems Concepts, 3rd Edition, Silbershatz, Peterson, and Galvin, Addison-Wesley, 1991.
c) Modern Operating Systems, Tanenbaum, Prentice Hall, 1992

If you are going to buy one of these don't get the 3rd Edition of Operating Systems Concepts.

Be sure to make use of the books on reserve in the library. In the past students have found them to be EXTREMELY helpful.

Prerequisites: General prerequisites, including COSC 3321.03, a good understanding of operating systems concepts, C and UNIX programming skills.

Words to Remember for this Course

"There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies." C. A. R. Hoare, ``The Emperor's Old Clothes'', CACM Feb. 1981.

"I hear and I forget, I see and I remember, I do and I understand." -- Chinese proverb

"Genius is 1% inspiration and 99% perspiration" -- Thomas Edison

Course Handouts


Tips for doing Assignments

Final Exam

External Sources of Information about Nachos

WARNING: These sources of information are written for students at a different universities. Marking schemes and even proposed approaches may not be what I will use or look for. Use these documents only as a helpful source of information. I definitely have different views on how some things should be done.

  • Thomas Narten's Nachos Roadmap
  • University of Waterloo

    Nachos Classes

    The Course Newsgroup

    The course newsgroup is the first place you should look for course-related announcements and for answers to course-related questions. If you are registered in 4321 or 5421, you should read the newsgroup regularly.

    You may read the course newsgroup using your favorite newsreader. Alternatively, you may use your WWW browser to read the group by clicking on the hypertext reference above. Some WWW browsers, like mosaic, require you to set the environment variable NNTPSERVER before reading newsgroups. If you have trouble reading the course newsgroup using your WWW browser, try this

            setenv NNTPSERVER blue.cs.yorku.ca

    before starting your browser. Better yet, add this line to your .cshrc file.

    The Course Directory

    The course directory lives on the Ariel machines and is: /cs/course/4321.
    The subdirectories found there are:

    Helpful Information

    (There shouldn't be any need to print this stuff out)

    Other Computer Science Courses
    Last modified: September 19, 1995
    Prev modified: Sept 7, 1995

    Tim Brecht brecht@cs.yorku.ca