Note that the information presented here does not necessarily reflect the most up to date syllabus or course information. Rather this information is intended to provide a general overview of course content from previous offerings.
The purpose of CMPT 432 is to provide an in-depth understanding of operating systems principles: the parts of an operating system, how they are structured, the important policies governing their operation, and the implementation issues. There will be low-level system programming in implementing components of an operating system. Students will have the opportunity to develop systems software for virtual machine environments in which to make these low-level changes.
The lectures will explore some depth of both low-level and high-level issues in Operating Systems, from the details of context switching to security and protection issues. I intend to follow a fairly hands-on approach as much of the course material will not be delivered in lecture format. The notes are there for you to read and we will discuss particular points where clarity is needed, but substantial class time will be devoted to actual programming and design meetings.
Dwight Makaroff
Dwight is generally accessible
by email, but only for specific questions that cannot be answered on
WebCT. Due to the size of the class, I expect to spend some time in
the Spinks lab during the term to help with your design and
implementation questions.
Time: TTh, 16:00 - 17:15
Room: Thorvaldson S386
A tentative topic outline is as follows:
There will be 1 assignment, a mid-term exam (held in-class), a research project and an implementation project, and finally, a final examination during the regular examination period. 832 students will also present a research paper, exploring some innovative techniques in operating system implementation and design.
Exact dates will be announced as the course progresses. The approximate weightings for the assignments and examinations are as follows:
| Component | Weight for 432 | Weight for 832 |
| assignments | 5% | 5% |
| implementation project | 35% | 35% |
| research project | 15% | 20% |
| paper presentation | 0% | 10% |
| mid-term exam | 15% | 10% |
| final exam | 30% | 20% |
The textbook for this course is
Modern Operating Systems: Third Edition by Andrew S. Tanenbaum, Pearson/Prentice Hall, 2008.
Recommended Reference Reading: Linux Kernel Programming, by Michael Beck et al., Addison Wesley, 2002.
Recommended Reference Reading: Advanced Programming in the UNIX Environment, by W. Richard Stevens and Stephen A. Rago, Addison Wesley, 2005.
Recommended Reference Reading: Operating Systems Design and Implementation (3rd Edition) , by Andrew S. Tanenbaum and Albert S. Woodhull, Pearson/Prentice Hall, 2006.
This course will be administered with BlackBoard/WebCT. There is an abundance of material, index, references, and a glossary. There is also a set of pages with links to websites with excellent tutorials.
Students will be using the Linux machines in the Spinks laboratory to do most of their work, and are expected to be familiar with the use of these facilities. There will be access to virtual machine environments on some of the Stealth machines for programming in the Linux kernel. Details of access to these machines for kernel programming will be given early in the term.
A few miscellaneous points:
The course will make regular use of the World Wide Web and other Internet facilities. In particular, the discussion forum capability of WebCT will be used extensively, and it is your responsibility to read it daily, as many things will be discussed in that forum that never make it to the classroom.
Assignment descriptions will be made available on WebCT only. Submissions will be handled electronically throught WebCT as well.