This course studies the principles and concepts that govern the design of modern computer operating systems. In general terms, the course covers the two primary functions of an operating system: insulating users and applications from details of the computer hardware, and managing the allocation of resources to improve efficiency. Specific topics covered include the process model of computation and the related areas of mutual exclusion and process synchronization, including the use of semaphores, message passing, and monitors. Process deadlock detection and prevention are also discussed. With respect to resource management, areas covered include processor scheduling, memory management, and management of secondary storage devices, such as magnetic disks. Memory management topics consist of swapping, virtual addressing, paging, segmentation, and sharing. Secondary storage management topics include file system organization, access methods, and performance optimizations. Implementation techniques are discussed for each of these topics, as well as protection and security concerns. Finally, if time permits, the course will cover alternative operating system architectures, and the implications of future trends in computing on operating system design.
Mon & Wed 4:30-5:45 GLD-S906
Fri 3:00-3:50 GLD-S906
Srividhya Subramanian
Gould-Simpson 710
621-4089, (srivi278 at email.arizona.edu)
Office Hours: Mon, Wed 1:30-3:30
Milind Chabbi
Gould-Simpson 749C
621-2738, (milind at cs.arizona.edu
Office Hours: Tue, Thu 1:00-3:00
Please direct all of your questions and class discussions to the newsgroup at the news.cs.arizona.edu news server. All questions related to projects, homeworks, exam and general questions should be directed there. This will benefit other students in the class as they will most likely have similar questions. All students are encouraged to participate in answering question and providing general hints. However, you are not allowed to give out complete solution or share code. News group access directions (you have to restart Thunderbird before you will get to the news server).
If you would like to provide anonymous comments please use discussion forums at http://d2l.arizona.edu.
Question that are unique to a single student should be directed to the instructor, TAs or cs452@cs.arizona.edu that is monitored by the instructor and the TAs.
CSc 352. A good knowledge of C programming is required, including the use of Makefiles and a debugger. Knowledge of Unix shell commands is also essential.
Andrew S. Tanenbaum
Modern Operating Systems, 2nd edition
2001
Prentice Hall
ISBN 0-13-031358-0
(Please note this is the 2nd edition . There are numerous changes and updates compared to the 1st edition. If you answer questions on exams/homeworks based on information from the first edition that is incorrect or out-of-date, you will not receive credit for such.)
By the end of the course, the student will:
∙ Explain the evolution and objectives of operating systems;
∙ Explain the major functions of an operating system and describe issues relating to the design and implementation of operating systems;
∙ Understand the interrelations among the various components that make up an operating system;
∙ Explain the interrelationship between the operating system and the architecture of the computer;
∙ Explain issues in distributed operating system design;
∙ Specify basic performance criteria for operating systems.
Based on homework exercises, on programming assignments that use DLXOS and involve creating an OS for the system, and two exams.
Programming Assignments (5 labs) 45%
Lab 1 5% each
Lab 2, 3, 4, 5 10% each
Exams 45%
First exams 20% each
Final exam 25% each
Homework Assignments 10%
The final grades may be curved, but a weighted total of 89.5% and above is guaranteed to be an ‘A’, 79.5% and above at least a ‘B’, 69.5% and above at least a ‘C’, and 59.5% and above at least a ‘D’.
The grades can be checked on http://d2l.arizona.edu
For grade replacement option, adding and dropping the class deadlines please see university calendar http://catalog.arizona.edu/calendar/0607cal.html.
Exam 1: Monday 03.05.2007
Final Exam: Wednesday 05.09.2007 5:00-7:00pm
You will need CS department computer accounts for this course. You can obtain these through the web page: http://www.cs.arizona.edu/apply. If you already have CS department accounts, you still need to do the apply process to update the department’s database as to the courses you are taking. If you need physical access to the computer labs in Gould-Simpson, you can obtain a swipe card that will let you into the facilities; the CS computer labs are available 24/7.
The programming assignments in this class will be done in C. They will be done on Fedora 4 on lectura.cs.arizona.edu. lectura is reachable via ssh over the Internet. Programming assignments will be done in groups of two.
Students are strongly encouraged to complete the programming and homework assignments on time. Do not feel that your program or assignment must be complete to be turned in. Fair partial credit will be given. However, exceptional circumstances do sometimes occur. For this reason, the projects can be turned in for up to two late days for each lab assignment(not homeworks). Each late day will incure 10% reduction in the maximum grade, so you may get max 90% of point for one late day and 80% of points for second late day. A “late day” is defined as one minute up to 24 hours after the due date/time. Weekend and holidays count as late days. Once the two late days have passed, work turned in late will receive a grade of zero.
The last phase of the project will be due on Monday, May 2nd. No late days can be used on this phase.
Machine downtime will be taken into account in extending the due dates for programs only if persistent and repeated outages occur over the life-span of the assignment. You should therefore endeavor to complete each program well before the deadline. As you get portions of each phase working, you are encouraged to turn those in and make back-up copies for your own use.
I encourage you to talk with your friends about the course work; both giving and receiving advice will help you learn. However, students are responsible for understanding and following the University's Code of Academic Integrity. Briefly, you will not accept solutions from other persons, you will not give solutions to others, and you will not tamper with graded papers, code, or exams. It is OK to talk among groups about algorithms and general approaches, but each group must develop and write its own code, and each person must turn in her or his own homework and exams. I also consider misuse of your computer account a violation of academic integrity. The one exception to this is for test cases. You are allowed to share test cases and expected results of these test cases for the project among groups. Students who violate the Code should expect at a minimum to fail the course and have charges recorded by the Dean of Students office. They may also be subject to other penalties. Refer to the “Code of Academic Integrity” for further details on what constitutes cheating, the penalties that may result, and the procedures involved.
If grading seems incorrect, unfair, or inconsistent on a program, homework, or exam, you may appeal for a regrade. You may talk with the TAs or me about the regrade. Regrades on homeworks, program phases, and exams will only be accepted during the two week period following their return. The re-grade does not necessarily have to be fully resolved, but the initial request must be made during the two week period. Regrades on the final exam and the last homework/project phase will be accepted according to the university policies http://catalog.arizona.edu/2006-07/policies/gradappeal.htm.
Do not question or challenge the decisions of the TA on grades and on re-grades! The TA can only assign grades, and change grades, according to instructions that I have given. If you do not agree with the TA, talk to me.
The dates/times for the exams and the final exam are firm. Each student must be careful to present a self-contained effort during each exam, and to keep her/his exam paper from easy display. Violations will be dealt with severely, with penalties that may exceed the value of the exam.
Students with disabilities, who may require academic adjustments or reasonable accommodations in order to participate fully in course activities or to meet course requirements, must first register with the Disability Resource Center, 1540 E 2nd St, 621-3268, email drc@w3.arizona.edu, URL http://drc.arizona.edu. DRC staff will qualify students for services, and provide a letter to the instructor listing accommodations to be made. This letter should be submitted by the student directly to the instructor as soon as possible during the first week of classes. The student should meet as soon as possible with the instructor by appointment or during office hours to discuss accommodations and how course requirements and activities may impact your ability to fully participate.