Instructor:
Anil
Somayaji (soma at scs.carleton.ca), Office Hours: TBA and by
appointment.
Teaching Assistants:
Glenn Wurster (gwurster at
scs.carleton.ca), Office Hours: Tuesday 2:30-3:30 PM in 1170 HP.
Hao Chen (ehaochen@gmail.com), Office Hours:
Thursday 2:30-3:30 PM in 1170 HP.
Lecture: Tuesday and Thursday, 11:35-12:55 AM in 310 Steacie
Building. January 5th through April 4, 2006.
Lab: Tuesday or Thursday, 1:30-2:30 PM in 1170 Herzberg
Building. January 10th through March 30, 2006.
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. Weekly lab exercises will also be assigned. Student performance will be evaluated through quizzes and exams. 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 System Concepts, 7th Ed. by Silberschatz, Galvin, and Gagne. This text may be supplemented with additional 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, single spaced, with a 12 point font, one inch margins, and stapled - no need for binders. (Double-spaced is also acceptable, but 10 pages double-spaced is on the short side.) The paper will be graded on the basis of topic coverage, accuracy, organization, style, and clarity (not length, per se). This assignment will be due in two parts:
Labs: There will be required lab assignments throughout the course. Students will be required to turn in these assignment at the end of the lab period. While students are encouraged to work together during lab, material covered in lab will also be covered in quizzes and exams.
Lab assignments and some solutions are available here.Grading: Final grades will be calculated as follows:
Ethics & Intellectual Honesty: I expect everyone to uphold the highest intellectual and ethical standards. Ideas and words should be properly credited to their sources - 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.
Note that I expect you to turn in a paper that reflects your understanding of your chosen topic. While most of the information you present will come from other sources, the organisation, presentation, and wording should all be your own. Any content, whether it be direct quotation, figure, organization of material, or idea that is not your own or "common knowledge" in the context of the course must be properly cited in proper scholarly form. Large quotations, while permitted, should be used sparingly, as they tend to be a sign of a weak paper. Do not simply paraphrase paragraphs and cite them; such lifting is considered plagarism and will be dealt with accordingly.
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 January 26, 2006. I will do my best to make reasonable accommodations within the context of the course.
Date |
Due |
Topics |
Readings |
---|---|---|---|
Jan. 5th |
#1: Introduction |
Chap. 1 |
|
Jan. 10th |
|
#2: OS Structures |
Chap. 2 |
Jan. 12th |
#3: Processes |
Sec. 3.1-3.3 |
|
Jan. 17th |
#4: Inter-process Communication |
Sec. 3.4-3.6 |
|
Jan. 19th |
#5: Threads 1 |
Chap. 4 |
|
Jan. 24th |
|
#6: Threads 2 |
|
Jan. 26th |
#7: CPU Scheduling |
Chap. 5 |
|
Jan. 31st |
|
#8: Process Synchronization |
Chap. 6 |
Feb. 2nd |
Paper Outline |
#9: Deadlock |
Chap. 7 |
Feb. 7th |
|
#10: Main Memory |
Chap. 8 |
Feb. 9th |
#11: Virtual Memory #1 |
Chap. 9 |
|
Feb. 14th |
#12: Mid-Term Q & A |
||
Feb. 16th |
Mid-Term Exam |
|
|
Feb. 28th |
|
#13: File-System Interface |
Chap. 10 |
Mar. 2nd |
|
#14: File-System Implementation #1 |
Chap. 11 |
Mar. 7th |
#15: File-System Implementation #2 |
||
Mar. 9th |
Quiz #4 |
#16: Mass-storage Structure |
Chap. 12 |
Mar. 14th |
|
#17: Networked Filesystems |
Sec. 10.5, Sec. 11.9, & Chap. 17 |
Mar. 16th |
#18: I/O Systems |
Chap. 13 |
|
Mar. 21th |
#19: Protection |
Chap. 14 |
|
Mar. 23th |
Quiz #5 |
#20: Security |
Chap. 15 |
Mar. 28th |
|
#21: Virtual Memory #2 |
|
Mar. 30th |
|
No class |
|
Apr. 4th |
#22: Future Operating Systems |
||
Apr. 7th, 4:30 PM |
Term Paper (due in 5302 HP, Somayaji's mailbox) |
|
|
Apr. 13, 11:30 AM |
|
Optional Study Session (5115 HP) |
|
Apr. 21st, 2 PM |
Final Exam (TB 342) |
|