CSC 2/456

Operating Systems

Fall 2018

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: LeChase 141.

Instructor:

Sandhya Dwarkadas
e-mail: sandhya at cs
Office: Wegmans Hall 3403/3511, 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:

Zhuojia Shen
e-mail: zshen10 at cs
Office: Wegmans Hall 3203
Office hours: 5:00 p.m. --- 6:00 p.m., Fridays

Mohsen Mohammadi
e-mail: mmohamm2 at cs
Office: Wegmans Hall 2311
Office hours: 4:00 p.m. --- 5:00 p.m., Wednesdays

Questions and Answers

E-mail is best. Please use the class discussion board 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). The two books differ in sytle. Tanenbaum's is a more historical and narrative style of description. SGG is a more algorithmic and cut-and-dry description. Both books do have updated Linux and Windows case studies. SGG provides a larger number of case studies through on-line content. My current preference is for SGG, but you should choose the text based on your preference and follow the lecture content in looking for the sections that are required reading.

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 the principles behind implementing them. A reference book on a real production OS may help you understand the practical aspects of OS concepts and design principles and be extremely useful for your Linux-based projects. However, online code walkers may be your best help. The books below cover version 2.6 of the Linux kernel. The first by Mauerer is the only one to cover the latest scheduler. They will all be on reserve in the library.

Assignments and Grading

There will be about five 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. Grading will be based on an assessment of the above activities, with a tentative division being

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. No assignment will be accepted more than 3 days late. Examinations will be given at alternate times only with appropriately documented medical excuses.