CMPUT 379: Operating System Concepts 
Department of Computing Science

Winter 2001

Dr. Janelle Harms, Section B1

Professor Tony Marsland, Section B2


-- Monday, January 8, 2001 --
Lecture (B1): MWF 1000-1050, V Wing 103
Lecture (B2): MWF 1400-1450, CSC B-10

Instructor (B1): Dr. Janelle Harms, GSB 739, 492-2763
E-mail: (prefer e-mail instead of telephone)
Office hours: Monday 11-12 and Tuesday 1:30 to 2:30pm.
Instructor's Home Page:

Instructor (B2): Dr. Tony Marsland, CSC 2-43, 492-3971
E-mail: (prefer e-mail instead of telephone)
Office hours: Monday 11:00-12:00 and Wednesday 15:00-16:00 (by appointment)
Instructor's Home Page:

Course's Home Page:
Departmental Page:
Newsgroup: (Please read it and use it regularly.)
If you have difficulty accessing the newsgroup it probably means that your computer is not in the domain. If off campus, you must first authenticate yourself (using your CNS ID and password) via the CNS proxy server and then try again.
PostNews: Post a news item to:


To provide an overview of the organization of operating systems for general-purpose computers. Students will be exposed to several new aspects of programming including: process scheduling, process synchronization, multi-process computation, deadlock avoidance, file system organization, and security. The concepts taught will be illustrated with examples taken from a variety of operating systems, but particularly from Unix.


CMPUT 204, one of 229/285, and 291
(i.e., C-programming, analysis of algorithms, interrupts and DMA, and file access methods)
Prior knowledge of C programming (equivalent to CMPUT 201) under Unix is absolutely required.


  1. A. Silberschatz & P. Galvin, Operating Systems Concepts, Fifth Edition, Addison Wesley, 1998. (REQUIRED).
  2. W. Stevens, Advanced Programming in the Unix Environment, Addison Wesley, 1993. (Strongly RECOMMENDED). Alternatively any equivalent book. For example, Unix Network Programming by W.R. Stevens, Prentice Hall 1991 (International Edition) ISBN 0-13-928755-8 (paperback).
  3. S. Das, Your Unix: The Ultimate Guide, McGraw Hill, 2000 (a comprehensive book)
  4. Marsland/Eskicioglu, CMPUT 379 Course Notes (two slides per sheet). (available online).

  5. If you have difficulty accessing these notes it probably means that your computer is not in the domain. You must first authenticate yourself via the CNS proxy server and try again. Precisely how to set up your web browser for of-campus use of on-campus materials is provided by the CNS proxy server help desk.

Course Outline

  1. Introduction and Overview
  2. Processes
  3. Synchronization
  4. Interprocess Communication
  5. Scheduling
  6. Deadlock
  7. Memory Management
  8. Virtual Memory
  9. File Management
  10. Device Management
  11. Security
  12. Other Topics (as time permits)
Section B1 Marks
Section B2 Marks

Report all typographical errors to the instructor.


All handed-in material must have your (1) Full Name, (2) Student id, (3) Lecture section, (4) Instructor's name, (5) Lab section, and (6) TA's name 
All clearly labelled.

Marks will be deducted for every missing item.

Laboratory Exercises 5% Due each lab period until 1 February. 
Assignment #1  10% Due Monday, February 12, 2001. 
Programming assignment #2 15% Due Wednesday, March 14, 2001. 
Programming assignment #3 10% Due Monday, April 9, 2001. 
One midterm examination 22% Wednesday 28 February 
Final examination 38% 1400, 20 April 2001: B2
0900, 25 April 2001: B1
Check & confirm time and place.

NOTE: All assignments must be completed individually. There is no group work in this course. Be sure to read and understand the Code of Student Behaviour , especially submission of your own original solutions to assignments. Information regarding re-examination policies may be obtained from your individual Faculty Offices.

VERY IMPORTANT: Your solutions to the programming assignments must work on the department's laboratory machines in CSC 2-25 (Sun Solaris Workstations, CSU601 to CSU619) and with the g++ compiler. All testing will be done on these machines using g++. Note, however, you will be able to do the assignments and lab work using only the C subset of C++ (that is there is no requirement to use the object-oriented features of C++ or the C++ i/o functions, but you can if you wish). We also recommend that you use the gdb debugger. If you prefer to also use some other equipment (perhaps under some other operating system, such as Linux), it is your responsibility to make sure that your programs work on the lab machines before submitting them for marking.

LATE POLICY: All programming components of assignments must be submitted electronically by 6 p.m. on the due date. Any write-ups or reports are due in your lecture on the due date. Late assignments will be not be accepted, unless specifically approved by the instructor.

Notwithstanding the above, and offered here for the first time, each student is given a 48-hour extension card which can be played once during the term. This card is in lieu of notes for small medical problems, family obligations and the like. The (virtual) card is given up during a face to face conversation with the instructor, who will accept any reasonable explanation. It is our hope that nobody will need to exercise the extension option, but rather hold it in reserve for an unpredictable event. Extensions will not be given beyond the last day of classes (11 April), except in the most extra-ordinary circumstance.

Policy on Collaboration and Cheating

We assume that students are familiar with the University Regulations and Information for Students, especially with the Code of Student Behaviour (Section 26 of the UofA Calendar).

Except as described on certain assignments, all work is to be done individually. If work is handed in where, in the opinion of the lab instructor and/or one of the lecture instructors, it is too similar to have been done individually, a grade of 0 will be assigned for that work to all parties in the course that are involved. In such a situation, the individuals who are involved will be notified of this action by email sent to their Unix account. At that time, the individuals should contact the lecture instructor to discuss the matter, especially if they feel the action is unwarranted; contact must be within 48 hours of the sending of any such messages. Comparison of work will not be limited only to work handed in during this term. If it is discovered that work handed in is excessively similar (using the above criteria) to work handed in during a past term, not only will the above penalties apply, but the students in this course that are involved in this will be reported to their Dean. In such a situation, "similarity" will be considered a transitive relation (ie, all students in the course whose assignments are similar to one another's, will be reported to their Dean). The email sent to the student's Unix account will be considered "discussion" of the matter. Failure by the student to reply within 48 hours after sending of the message will be taken as a refusal on their part to discuss the matter further.

Although by the time students take CMPUT 379 they have all the necessary technical skills to complete the assigned work within the time allocated, occasionally a few students break the Students Code of Ethics. In recent years the Dean of each Faculty has dealt increasingly diligently with any cases that arise. Penalties are severe (perhaps a 1F in the course and an 8-month suspension). Given that you learn best by doing, we believe that it is in your best interests NOT to replicate the work of others and submit it as your own. The instructors are authorized to use automated techniques to ascertain the authorship of any piece of submitted work.

Labs and Teaching Assistants

LABS BEGIN FRIDAY 12 JANUARY 2001 (but make sure you have a valid CS UNIX account ID well before your first lab. period. Go to Room CSC 1-47 in case of problems).
Name and home page Email address Day and Time Lab Section Enrollment
Mr. Xudong Wu
Xudong's web page Tuesday, 1100-1350 [E]H01 15
Ms. Yanxia Jia
Yanxia's TA Page Tuesday, 1400-1650 [E]H02 17
Ms. Yanxia Jia
Yanxia's TA Page Tuesday, 1700-1950 [E]H03 17
Mr. Xudong Wu
Xudong's web page Wednesday, 1700-1950 [E]H04 16
Mr. Hongjun Zhang
Hongjun's Lab Page Thursday, 0800-1050  [E]H05 16
Mr. Hongjun Zhang
Hongjun's C379 Page Thursday, 1400-1650  [E]H06 17
Mr. Leonid Mocofan
Leonid's Home Page Friday, 1700-1950 [E]H07 14

Additional References

A.S. Tannenbaum, Modern Operating Systems, Prentice Hall, 1992.
W. Stallings, Operating Systems: Internals and Design Principles, 3rd Edition, Prentice Hall, 1998.
M.J. Bach, The Design of the Unix Operating System, Prentice Hall, 1986.
R.N. Horspool, The Berkeley Unix Environment, Prentice Hall, 1992. 
Copyright © Department of Computing Science.
All rights reserved.
Last update: