COS 431: Operating Systems
Fall, 2005
Professor:Dr. Phillip M. Dickens
Office: 225 Neville Hall
Office Hours: Monday and Wednesday 12:00-1:00 or by appointment.
E-mail:
Phone: 581-3967
Class Time: 11:00 – 11:50, MWF.
Required Textbook: Operating System Concepts, 7th Edition
Authors: Silberschatz, Galvin, and Gagne.
Supplementary Texts:You may also want to pick up a C programming book.
Class URL:
ADA Notice:I encourage students with disabilities to speak to me about accommodation needs they mayhave in order to assure success in this class.
CourseOverview:A computer’s operating system serves two purposes: It controls and schedules all of the resources of the computer and provides a virtual machine for the execution of users’ programs. In this class, we will study the functions performed by the operating system and how such functionality is implemented. This course will focus primarily on: processes, process synchronization, and scheduling; input/output; memory management, including virtual memory; files systems; deadlocks; and, if time permits, protection, security, and distributed operating systems.
Computer Accounts: You will need a Unix account to do at least two assignments. If you don’t have one, you will need to complete an account request form (available from the CS office). If you have access to Unix elsewhere (e.g., Linux on a home machine), you might still want to get an account on the UMCS machines; it’ll make your life a little easier when it comes time to demonstrate your programs.
Grading: Grades will be based on two prelims, a final exam, two programming assignments, a major project, and homework. The programming assignment and the homework are individual assignments; the project is usually performed by teams of two students. The project involves implementing a simple operating system: BRAIN98[1]. Detailed information about the project will be posted on the class URL shortly.
The grading scheme was chosen to ensure two things: that you do the assignments well, and that you cannot make up for a lack of understanding of the material by programming really well. Your grade will depend on two averages: the test average, computed as 25% Prelim I, 25% Prelim II, and 50% final exam; and the assignment average, computed as 75% BRAIN, 15% programming assignments, and 10% homework. The two averages will combine to give a grade as shown below.
If a student is on the border-line between two grades, I will almost always raise the grade if the student has been regularly attending (and contributing to) the class. If a student’s attendance and participation in class has been spotty, I will not, in general, raise their grade (even if it is only slightly lower!).
One additional constraint: A final grade of A in the course can only be achieved if all four parts of the BRAIN project are successfully completed and presented during the public presentation session. (Note: completing these assignments is only part of the final grade, however!) A maximum grade of B can only be achieved if parts 1–3 are completed and properly presented during the presentation session.
Handing in assignments: TBA.
Written Assignments: Your grade for any written assignment—including program documentation—will depend on the use of proper grammar and correct spelling. I reserve the right to decrease your grade for the assignment by up to a letter grade for grammar/spelling/typographical errors, or to refuse to accept the assignment entirely for particularly egregious errors. I will usually allow you to hand in a revised version, possibly after requiring that you seek help from the WritingCenter.
Late Policy:Assignments handed in late will be penalized 10% per day unless otherwise announced, including weekend/break days.
Plagiarism and Cheating: You don’t want to go there!! Plagiarism and cheating are violations of UM’s Student Conduct Code and will not be tolerated in this class. Such behavior will result in at least a zero for the affected assignment/test, and possibly an F in the course. In addition, such an offense may be reported to the appropriate offices for disciplinary action, which may, in the worst case, result in dismissal from the University. It is sometimes a fine line between collaboration that is acceptable (or even desired) on a programming project or homework and cheating. I encourage students to talk together about the course and the course assignments. However, all work turned in, with the exception of any group projects or group assignments should be your own. If you feel that the ideas behind some portion of an assignment are due to another student, you should note that in the assignment you turn in. If you have a question about what constitutes cheating, you should contact me for clarification.
Class Web Page:Important class-related information, such as assignments, class slides, announcements, and helpful links will be posted on the class URL. Please check it often and note that you are responsible for all items posted to the web site.
Make-up Classes: I may need to miss classes from time to time, and will announce such absences in advance (to the maximum extent possible). We will need to hold makeup classes when this occurs.
Tentative Schedule
Week / Week of / Topics / Readings / Due1 / September 5th / Introduction / Chapters 1,2.
2 / September 12th / OS Structures, Processes / Chapters 2, 3.
3 / September 19th / Processes / Chapter 3.
4 / September 26th / Threads / Chapter 4. / Assignment 1 due Monday 26th 8:00 AM.
5 / October 3rd / Scheduling / Chapter 5. / Brain 1 due October 3rd, 8:00 AM.
5 / October 5th / Prelim I / Chapters 1-5.
6 / October 12th / Process Synchronization / Chapter 6. / Assignment 2 due Monday October 12th, 8:00 AM.
7 / October 17th / Process Synchronization / Chapter 6.
8 / October 24th / Memory Management / Chapter 8. / Brain 2
9 / October 31st / Memory Management / Chapter 8.
10 / November 7th / Virtual Memory / Chapter 9.
11 / November 14th / Virtual Memory / Chapter 9. / Brain 3 due Monday November 14th, 8:00 AM
11 / November 18th / Prelim II / November 18th
12 / November 21st / File Systems / Chapter 10.
13 / November 28th / File Systems / Chapter 11.
14 / December 5th / I/O System / Chapter 13.
15 / December 12th / Mass-Storage / Chapter 12. / Brain 4 due Wednesday, December, 10th.
16 / December 19th / Final Exam / 10:30 AM – 12:PM
We will also cover protection and security (Chapters 14, 15) if time permits.
Academic Calendar, Fall 2005
Classes Begin / Tuesday, September 6, 8:00 a.m.Last day to add courses / Monday, September 12th
Last day to drop courses for refund / Monday, September 19th
End of 1st 3rd of semester for withdrawals / Thursday, October 6th, 4:30 PM
Fall break begins / Friday, October 7th, 5:00 PM
Classes resume / Wednesday, October 12th, 8:00 AM
Application for Graduation filing deadline (Dec.) / Friday, October 14th, 4:30 PM
Registration for Spring 2006 / Thursday-Friday, November 8th – 18th
End of 2nd 3rd of semester for withdrawals / Thursday, November 10, 4:30 PM
Thanksgiving break begins / Wednesday, November 23, 8:00 AM
Classes resume / Monday, November 28, 8:00 AM
Classes end / Friday, December 16, 5:00 PM
Final exams begin / Monday, December 19, 8:00 AM
Final exams end / Friday, December 23, 6:00 PM
[1]I am deeply indebted to Professors Larry Latour and Roy Turner for the development and careful documentation of the BRAIN98 system, and for allowing me to use the projects they have so carefully constructed.