Operating
Summer 2011
Instructors:
Office hours: after lectures |
Teaching Assistants:
Cheng Li |
Email: FirstNameLastName@mpi-sws.org |
Tutorial/Office hours: Thursdays 10am-12pm. Room 614. Building E1.4 |
Lectures:
The class meets on Tuesdays and Thursdays, 12-2pm. 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-ss11@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-ss11.
<os-ss11-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
Assignment 4 is out.
Assignment 3 is out.
Assignment 2 is out.
Projects should be submitted by email to os11-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 assignments, 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, exams and communication
with the course staff will be conducted exclusively in English.
Textbook
Operating System Concepts (8th Edition), by Silberschatz, Galvin, Gagne. Wiley; 8th edition (July 28, 2008).
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.
McKusick, Bostic,
Karels, Quarterman, The Design and Implementation of the 4.4 BSD Operating
System, Addison-Wesley.
Russinovich and Solomon, Microsoft Windows
Internals, Fifth Edition: Including Windows Server 2008 and Windows Vista.
Bovet
and Cesati. Understanding the Linux Kernel.
O’Reilly Media. 3rd edition, 2005.
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 50% of
the weighted score, and exam scores account for the remaining 50% of the weighted
score.
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. We do
not allow individual project solutions nor groups of
three. If your teammate drops the course you must immediately find a
replacement, irrespectively of the current project stage. If you have
difficulty in finding a replacement please contact the course staff and we will
assign you one.
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 os11-assignment@mpi-sws.org. Expect a confirmation 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. This extension is to be used for incidental occurrences, so please do not
ask us for any extensions due to any incidental circumstances.
In
case a student works with different teams throughout the semester, 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.