Teaching Assistants:
1. Chunyuan Liao
2. Daniel Camara
Lab hours:
W, 12:00-12:50 (section 0201) and 13:00-13:50 (section
0202) , CSI 1122
Prerequisites: Grades of C or better in CMSC 311/ENEE 350 and CMSC 330, or CMSC 400.
Textbooks:
1. Operating Systems (Fourth Edition), by William Stallings, Prentice Hall, 2001.
2. Operating System Concepts (Sixth Edition), by Silberschatz, Galvin, and Gagne, John Wiley & Sons, 2001.Additional papers may be assigned during the semester.
Overview
This course covers the basic operating systems concepts, with an emphasis on internals, design and performance issues.
Lectures, recitations, homeworks, project and exams are equally important in learning operating systems. The lectures will provide a thorough discussion of the fundamentals of operating systems including the current trends in operating systems research. They will help students develop a solid understanding of the key structures and mechanisms of operating systems, the types of trade-offs and decisions involved in OS design, and the context within which the operating system functions (hardware, other system programs, application programs, interactive users).
The recitations/labs will bridge the gap between the operating system concepts taught in the lectures and the actual operating systems. Each OS concept such as processes, interprocess communication and synchronization, files and networking will be illustrated by their corresponding implementation and programming interface in an UNIX-like operating system (Linux or Solaris).
Homeworks and project aim to allow students to deepen their knowledge and develop systems programming skills through independent work. Homeworks will focus on how to use/program with operating system mechanisms, while from the project students will learn how to implement these mechanisms. Both homeworks and project will require substantial programming and a good background in computer architecture.
Finally, the exams will provide students with the opportunity to exercise their knowledge in solving problems ranging from simple questions to OS design and implementation problems.
Grading
The course grade will be based on exams, project assignments, and homeworks. You may expect to have short quizzes in class from time to time. Classroom discussion and questions are highly encouraged. Quizzes and class participation will count if you are on a grade border line at the end of the semester. There will be a midterm and a final exam, which will be cumulative but heavily weighted toward material in the last section of the course. The weights of each exam will be 25%, 25% for the homeworks, and 25% for the project. Most grades will be curved to account for exams/homeworks/etc. that are overly easy/hard. Project grades will not be curved. It is very important to note that, in order to receive a passing grade, you must obtain a passing grade on each part of this course, namely exams, project and homeworks.
I expect a signed honor pledge on every assignment, quiz, and exam, and I expect you to adhere to the intent of the pledge as I have outlined it. If, in my judgment, it is beyond a reasonable doubt that a student has committed an honor violation with regard to a given test, that student will receive an immediate grade of 'XF'.
Course Outline
Other Information, Materials and Resources
Announcements, project and homework assignments will be posted here.
A newsgroup and a mailing list for the class will be available for announcements and discussions
A significant body of information and course support materials including lecture and summary notes as well as other powerpoint slides used in teaching similar operating system courses can be found here.