Operating
Summer 2009
Instructors:
Office hours: after lectures |
Teaching Assistants:
Alex Busenius |
Email: s9albuse@stud.uni-saarland.de |
Tutorial/Office hours: Wednesdays 13-14, Room 611 (MPI building) |
Lectures:
The class meets on Mondays and Thursdays, 10am-12pm. The location is E1.3, HS 003.
Lecture notes, course schedule, recommended readings, and assignments can be found here.
Students are encouraged to meet the teaching staff during office hours for help with any questions or problems. Tutorials will be offered when needed.
Mailing Lists:
<os-ss09@lists.mpi-sws.org>:
includes everyone involved with the course, the teaching staff as well as the
students. Important announcements, such as exam schedules and assignment
deadlines, will be posted on this list. Students can also use it to form
project teams, to discuss projects, and to exchange ideas and experience.
Everyone should join and read this group mailing list daily. To subscribe,
please visit https://lists.mpi-sws.org/listinfo/os-ss09.
<os-ss09-staff@mpi-sws.org>
: includes all members of the teaching staff, the instructors as well as the
teaching assistants. Students should use this for all communication with the
course staff.
Please,
email individual staff members only when the communication is personal, and is not
related to the course in general.
News
All project and exam
scores, as well as final course grades can be found here.
The material on storage
devices (file1.pdf) will be covered in the final exam. The course notes for
this class have been updated on July 23, so please retrieve the most recent version.
The repeat exam has been scheduled
for Fri, October 9th, 10:00-12:00, HS 003.
The term end exam has been
rescheduled to August 4th,
10:00-12:00, HS 003, due to a conflict with another course’s exam.
We will conduct design reviews for the second assignment during the tutorial slots chosen by each team when they signed up for the course. We will post more information on these design reviews here in the next couple of days.
Projects should be submitted by email to os09-assignment@mpi-sws.org. Expect a confimation within 48 hours of handing in your project and please contact the instructors if you don't receive one. Please remove all unnecessary files from the code you hand in such as object files or executables. When submitting the project, please use the following format for the subject line: "Assignment N - LastName1 LastName2" (e.g., Assignment 1 - Druschel Rodrigues)
Course Description
This course introduces students
to the principles, design, and implementation of operating systems. The
lectures focus primarily on the principles and design of operating systems; a
course project exposes students to the implementation aspects of operating systems
and serves to solidify students' understanding of the course material.
Intended Audience / Prerequisites
This
core course is open to Bachelor and Master students. Bachelor students must
have passed the basic courses on Programming 2 and Math 2. Proficiency in
programming (C/C++) and UNIX development tools (e.g. make, gcc, gdb, jdb) is
strictly required to pass this course.
The
language of the course is English. All lectures, office hours, tutorials and
communication with the course staff will be conducted exclusively in English.
Textbook
Operating System Concepts (7th Edition), by Silberschatz, Galvin, Gagne. Wiley; 7th edition (December 14, 2004). ISBN 978-0471694663.
A small number of papers will
be handed out in class. The lecture will cover some topics in more depth than
the book, and also in a different order. If you're curious about how the principles
we cover in this class are applied in a modern commercial operating system, you
might look at one of the following texts:
Goodheart and Cox, The Magic
Garden Explained, The Internals of UNIX System V Release 4, Prentice-Hall, ISBN
013-098138-9.
McKusick, Bostic, Karels,
Quarterman, The Design and Implementation of the 4.4 BSD Operating System,
Addison-Wesley, ISBN 0-201-54979-4.
Russinovich and Solomon, Microsoft
Windows Internals, Fourth Edition: Microsoft Windows Server 2003, Windows XP,
and Windows 2000, ISBN 9780735619173.
Bovet and Cesati.
Understanding the Linux Kernel. ISBN 0-596-00002-2.
Lecture Notes
Summary
lecture notes will be available on the course web-site for most of the material
covered in the class. These notes are primarily meant to help students with
taking notes. However, they will not accurately or consistently cover all the
material discussed in the lectures. Students are expected to know all material covered
in the lectures, and in the assigned readings and projects. Therefore, students
should not rely only on the lecture notes. They should attend class regularly, take
their own notes and complete all assignments.
Exams
There
will be a midterm exam (covering material from the first half of the course), a
term end exam (covering material from the second half of the course), and a
repeat exam (covering the entire course). The exams carry equal weight. All
exams will be open book and based on the material covered in lectures,
readings, and projects.
Grading
To
pass the course, a student must (i) pass the project assignments, and (ii) pass
at least two out of the three exams, namely the midterm exam, the term end exam
and the repeat exam. To pass the project assignments, the sum of all points earned
by a student in the project assignments must be at least 50% of the maximal
possible points. To pass an exam, a student must score at least 50% of the
maximum possible points in the exam.
Your
course grade will be based on a weighted score computed from the points you
earn in your successful examinations and your project assignments. If a student
passes all three examinations, then the exam with the lowest results will not
be considered when computing the course grade. Project scores count towards 40%
of the weighted score, and exam scores account for the remaining 60% of the
weighted score.
Homework Assignments
Homework
assignments will be provided to help students prepare for the exams. Solutions
should be turned within one week after the assignments are handed out. Teaching
assistants will read over the solutions, identify common mistakes being made,
and discuss them during the tutorial hours. Teaching assistants will also
provide sample solutions. However, they will not grade the submitted solutions;
homework assignments will not count towards the course grade.
Class Project
The
project is to implement a simple operating system; it is based on the Pintos
system from Stanford University. The project has four stages: (1) threads and synchronization,
(2) user programs, (3) virtual memory, and (4) filing services. Each stage
builds on services that students implemented in previous stages of the project.
To make it possible to complete the project in one semester, some code is
provided that implements a subset of the required functionality. Students are
required to make major extensions to the existing design and implementation,
adding missing functionality and improving performance. In stages 2, 3, and 4,
students are also required to evaluate their design choices experimentally.
The
projects will require a substantial amount of software design and implementation.
The software produced will be graded based on its ability to successfully pass
a set of functional and performance tests.
Project
teams:
Students are required to work on the projects in small teams of two students.
It is the responsibility of the students to form and manage their own teams.
All
team members must be involved in all aspects of the project. To collaborate
effectively, team members should divide the project responsibilities so that
they can work in parallel. However, each member is responsible for, and should
be familiar with, all the work done by the team. Proper time management is
critical – if you don't start working on the assignments early you will not be
able to complete the projects!
Project deadlines: Programming projects must be submitted by 11:59 PM on
their due dates (posted on this website). Projects should be submitted by email
to os09-assignment@mpi-sws.org. Expect a confimation within 48 hours of handing
in your project and please contact the instructors if you don't receive one.
Please remove all unnecessary files from the code you hand in such as object
files or executables. When submitting the project, please use the following
format for the subject line: Assignment N - LastName1 LastName2
Late submissions: We will apply a flexible slip date policy for late
submissions. Each student is allocated an automatic extension of 4 calendar
days for the entire semester. Students can use the extension on any project
during the semester in increments of one day. For instance, you can hand in one
project assignment 4 days late, or one assignment 2 days late and two
assignments 1 day late.
For
team submissions, the slip time will be deducted from each team member's remaining
slip time. Students will not receive credit for late submissions beyond the
automatic extensions.
Honor
code:
It
is acceptable to discuss ideas, algorithms, or approaches to solving problems and
assignments with other students. We encourage you to give and get such advice
as it will help you learn the material better and improve your ability to work
in a team. However, what you submit must be the work of your own group; copying
code or solution sets from any source is strictly prohibited.