COMP 3000A: Operating Systems

Carleton University, Fall 2004
Course Outline

     Anil Somayaji (soma at, Office Hours: Tuesday and Thursday 1:30-2:30 PM
Teaching Assistants:
     Glenn Wurster (gwurster at, Office Hours: Wednesday 1-3 PM in 1170 HP.
     Rob Cattral (rcattral at, Office Hours: Thursday 2:30-4:30 PM in 1170 HP.
Meeting Time: Tuesday and Thursday, 10:05-11:25 AM. September 9th through December 2, 2004.
Meeting Place: 133 University Centre, Carleton University

Official Course Description: A first course in operating systems stressing fundamental issues in design: process management; memory management; process co-ordination and synchronization; interprocess communication; real-time clock management; I/O device drivers; file systems; frame-level network communication. Assignments involve the use, modification, and extension of a multitasking operating system.

Prerequisites: COMP 2402 (Abstract Data Types and Algorithms); COMP 2002 (Abstract Data Types and Algorithms) or SYSC 2002; COMP 2003 (Computer Organization) or SYSC 3003. Note that COMP 3000 precludes additional credit for SYSC 3001.

Format of Course: Students will learn about how operating systems are designed and implemented through readings, research, lab work, and lectures. Students will be assigned a combination of textbook readings, published papers, and web articles prior to every lecture. Students are encouraged to complete these readings before coming to class. Lab exercises will also be periodically assigned. While these exercises will not be graded, the material presented in these exercises (along with the readings) will be covered in the weekly quizzes, mid-term exam, and final exam. Students will also be required to write a term paper on a selected topic in operating systems.

Texts: The primary textbook for the course will be Operating Systems, 5th edition, by William Stallings. This text will be supplemented with weekly readings made available through the course website. Students are also encouraged to consult other operating systems textbooks and web resources to supplement assigned readings. To this end, several operating systems textbooks are on reserve in the library for this course.

Term Paper: Students will be required to write a term paper over the course of the semester. This paper is to be a literature review of a specific area of operating systems research, development, and/or implementation. The topic is to be chosen by the student - this is part of the assignment. The paper is to be approximately 10-15 pages in length. The paper will be graded on the basis of topic coverage, accuracy, organization, style, and clarity. This assignment will be due in three parts:

  1. Topic and bibliography:Your chosen topic should be described in one or more paragraphs (no more than one page). It should describe the area that is to be covered, why this topic is relevant to the field of operating systems, and why you chose this particular topic. You will also need at least 10 references to published works (conference papers, journal articles, or books). You may cite simple web pages; however, they will not be count towards your reference total. Good sources are CiteSeer and the IEEE Xplore. Note that the Carleton Library provides online access to many journals. You will be graded on how well you argue that your topic's relevance and how well you find the important articles related to your topic. You should try to find not just any papers, but the ones that seem most significant. A good measure of significance is how often a given paper is cited by others.
  2. Rough draft: Your rough draft should demonstrate that you have read and understood your selected papers. You should also have identified common themes, and these themes should be organized in a coherent fashion. It will not be acceptable to merely chain together a series of paper summaries; rather, the paper should argue a thesis of some kind, and should discuss the referenced works as part of an argument that supports that thesis. Uncited quotes or closely paraphrased sections will be considered plagarism and dealt with accordingly. Write your rough draft as if you were turning in your final draft - take it seriously!
  3. Final draft: The final draft should address the revisions suggested for the rough draft.

Labs:There will be non-graded but required labs throughout the course. Students are encouraged to use the Corel Lab (1170 HP), as it has a number of machines that are to be used exclusively for this class. While it will also be possible for students to use their own computers, it should be noted that most of the labs will require the installation of an operating system - an action that could easily erase all data on a computer. The following labs are currently available:

Grading: Final grades will be calculated as follows:

Class Notes: At the start of each class, I will ask a volunteer to take notes. This student will type up his or her notes and email me a copy within a week of the lecture date. Revised versions of these notes will be made available to the rest of the class through the class website. If the notes are completed satisfactorily, the student's lowest weekly quiz grade will be dropped and replaced by a grade of 100%. Each student may only receive credit for one set of class notes.

Ethics & Intellectual Honesty: I expect everyone to uphold the highest intellectual and ethical standards. Ideas and words should be properly credited to their sources whenever possible - even if that source is another student in the class! I have structured this course so that collaboration is permissible and even recommended. Please use this freedom wisely. If you have any questions regarding what is and is not allowed, please ask a me or a TA before proceeding. Intellectual dishonesty in any form will be cause for university disciplinary action.

Special Needs Students: Students with disabilities requiring academic accommodations in this course are encouraged to contact a coordinator at the Paul Menton Centre (PMC) for Students with Disabilities and to make an appointment to meet and discuss your needs with me by September 21, 2004. I will do my best to make reasonable accommodations within the context of the course.

Daily class outline (subject to change)





Sept. 9th


#1: Overview & Introduction


Sept. 14th

Quiz: Stephenson

#2: Culture, Convention, & Metaphor

Notes: PDF &

Neal Stephenson, "In the Beginning was the Command Line." Prettier versions are available here and here.

Sept. 16th


#3: Computer Organization

Chapter 1: Computer System Overview, pp. 8-50.

Sept. 21th

Quiz: Ch. 1 & 2

#4: OS of an Apple //c

Chapter 2: Operating System Overview, pp. 51-105.

Sept. 23th


#5: Chapter 2 review


Sept. 28th

Quiz: Sec. 11.1-11.5

#6: I/O Management and Disk Scheduling, the FAT filesystem

Chapter 11: 11.1-11.5, pp. 482-501: I/O devices, organization, design, buffering, scheduling (required). FAT16/32/LFN overviews by Jack Dobiash (optional).

Sept. 30th


#7: Networking

Chapter 13: Networking, pp. 583-606.

Oct. 5th

Quiz on Networking

#8: Processes

Chapter 3: Processes, pp. 108-148.

Oct. 7th


#9: Memory Management

Chapter 7: Memory Management, pp. 302-326.

Oct. 12th

Term Paper: Topic and bibliography

#10: Virtual Memory: Hardware

Notes: PDF & MS Word

Section 8.1: Hardware & Control Structures, pp. 332-352.

Oct. 14th

Quiz on processes, memory management, & Lab #1

#11: Virtual Memory: Software

Notes: PDF &

Sec. 8.2-8.4: OS Software, UNIX & Linux VM, pp. 352-378.

Oct. 19th


Mid-Term Review


Oct. 21th

Mid-Term Exam



Oct. 26th


#12: Threads, SMP, & Microkernels

Chapter 4: Threads, SMP, & Microkernels, pp. 157-200

Oct. 28th


TA Help with Rough Drafts (no lecture)


Nov. 2nd

Quiz on Threads, SMP, & Microkernels

#13: Concurrency 1: Principles, Mutexes, & Semaphores

Notes: PDF & MS Word

Chapter 5, Sections 1-3, pp. 200-227.

Nov. 4th

Term Paper: Rough Draft

#14: Concurrency 2: Monitors, Message Passing, Readers/Writers Problem

Chapter 5, Sections 4-6, pp. 227-245

Nov. 9th

Quiz on Concurrency

#15: Deadlock and Starvation

Chapter 6, pp. 255-299

Nov. 11th


#16: Uniprocessor Scheduling

Chapter 9, pp. 390-426

Nov. 16th

Quiz on Deadlock & Uniprocessor Scheduling

#17: System Calls of simple programs on Linux.

Lab #2

Nov. 18th


#18: Local Filesystems

Notes: PDF &

Chapter 12, pp. 535-577

Nov. 23th

Quiz on System Calls & Local Filesystems

#19: Distributed Filesystems


Nov. 25th


#20: Security
Paul Van Ooorschot

Notes: PDF &

Chapter 16, pp. 677-728

Nov. 30th


No class


Dec. 2nd


#21: Review


Dec. 9th

Final Exam, 9-12 AM
Southam Hall, 4-6th Floor



I'm soma at (Use @ to put them together to email me.)
[Home] Last modified: December 7, 2004