CSC 2/456
Operating Systems
Fall 2007
This course explores the field of computer operating systems, emphasizing
basic operating systems (OS) concepts and design principles.
While stressing the fundamental principles behind them,
we will discuss the performance and engineering trade-offs in the design
and implementation of operating system mechanisms.
The idea is to learn not only what operating systems are and how they work
today, but also why they are designed the way they are and how they are
likely to evolve in the future. This course will cover fundamental OS
material such as scheduling and synchronization, multiprogramming,
memory management, file system, protection, and security.
Additionally, we will touch on a few advanced topics including
micro-kernel OSes, virtual machines, and OS support for highly-concurrent
online servers.
Class time: 2:00-3:15 p.m., Tuesdays and Thursdays.
Class location: CSB 601.
Instructor:
Sandhya Dwarkadas
e-mail: sandhya at cs
Office: CSB 717, 275-5647
Office hours by appointment, but don't be afraid to drop by. If
you want to be sure I'm in my office, use e-mail to contact me.
TAs:
Hemayet Hossain
e-mail: hossain at cs
Office: CSB 625
Phone: 275-2527
Office hours: Tuesdays 1:00-2:00 p.m., Thursdays 5:00-6:00 p.m.
Hongzhou Zhao
e-mail: hozhao at ece
Office: CSB406
Phone: 451-3646
Office hours: Tuesdays 3:30-4:30 p.m., Fridays 1:00-2:00 p.m.
Questions and Answers
E-mail is best. I will create an e-mail alias for
questions or information of general interest.
Prerequisites:
CSC 252 or equivalent, and C/C++ programming experience
under Unix.
Material we will use:
You can use either of the following two textbooks. The required reading for each lecture is listed for both
texts. If you can find a recent (but not the latest) edition of either text,
I think you are fine (although the section numbers for required readings might
be different).
-
Tanenbaum, "Modern Operating Systems", 2nd edition, 2001, Prentice Hall.
This text has a nice coverage of past and current research efforts on
each operating system subject.
-
Silberschatz, Galvin, and Gagne, (SGG), "Operating System Concepts",
7th edition, 2005, Wiley. This is another widely used text on operating
systems. It has been updated with examples from the latest versions
of the operating systems discussed.
We will also supplement the textbook with notes and other research readings,
especially for those taking the course as CSC 456.
This course is mostly about the concepts of operating systems and
principles behind implementing them.
A reference book on a real production OS
may help you understand practical aspects of OS concepts and design
principles. It is also extremely helpful (if not necessary) if you take
the Xen track assignments. Both books below cover version 2.6 of the
Linux kernel.
-
Bovet and Cesati, "Understanding the Linux Kernel", 3rd edition, 2006,
O'Reilly. This book is very popular.
-
Love, "Linux Kernel Development", 2nd edition, 2005, Novell Press.
Assignments and Grading
There will be about six programming
assignments, and two exams. The programming projects are bound to be
time-consuming, with the idea that you learn from the experience,
so be sure to start on them as soon as they are handed out.
There will also be a few written homework
assignments, and occasional student presentations by those taking the
course as CSC 456.
Your grade will be based on a combination of the above, with a tentative
division being 50% for the programming assignments, 10% for any homework,
and 40% for the two exams.
Honor Code Policy:
For homeworks and programming assignments,
students are encouraged to consult each other, the TA, the
instructor, or anyone else for that matter. However, the assistance
offered or accepted should not go beyond a discussion of the problem
and a sketch of a solution. You can use the following guideline:
when it comes time for you to write your program or your homework
paper, do not use any written material from the discussion. If you
can reconstruct the discussion and complete the solution on your own,
then you have learned the material (and that is the objective of this
course!). For team projects, you should make sure
to identify division of labor in your README.
While projects will generally be graded as a team rather than separately
for each individual, corrective action could be taken.
Late homework and absences from exams:
Late assignments will have 10% of the maximum score deducted for each
24-hour period after the due date that the assignment is late,
except under extenuating circumstances.
Examinations will be given at alternate times only with appropriately
documented medical excuses.