01:198:416: Operating System Design

Fall 2009


Quick Links: [ General information | Course overview | Schedule | Homeworks | Project | Grading | Resources ]

Announcements


General information


Course overview

CS416 is a senior undergraduate-level course in operating systems. We will cover the basic concepts in operating systems, such as processes, threads, virtual memory, file systems, and communication protocols. If time permits, we will also cover a few interesting research topics, such as operating system security and intrusion detection. For the programming assignments, we will be using C. You are expected to be comfortable with the use of the C programming language and associated tools, such as debuggers.

This course and class web page are based on prior offerings of CS416 by Professors Ricardo Bianchini, Rich Martin and Thu Nguyen.


Schedule

Here is a tentative schedule of topics to be covered (subject to change over the course of the semester).

Date Topics Reference Slides
9/2/09 (W) Introduction and Logistics Chapters 1 and 2 PDF
9/8/09 (T) Architecture refresher Chapters 1 and 2 PDF
9/9/09 (W) Architecture (contd.), Processes Chapter 3 PDF
9/14/09 (M) Processes and Threads
Assignment 1 out
Chapter 3, 4 PDF
9/16/09 (W) Threads/Synchronization Chapter 4 -
9/21/09 (M) Synchronization Chapter 6, 7 PDF
9/23/09 (W) Synchronization Chapter 6, 7 -
9/28/09 (M) Scheduling Chapter 5 PDF
9/30/09 (W) Scheduling
Assignment 1 due
Chapter 5 -
10/5/09 (M) Memory Management
Assignment 2 out
Chapter 8, 9 PDF
10/7/09 (W) Memory Management Chapter 8, 9 -
10/12/09 (M) Memory Management Chapter 8, 9 -
10/14/09 (W) File Systems Chapter 10, 11 PDF
10/19/09 (M) File systems
Project Proposals Due
Chapter 10, 11 -
10/21/09 (W) No class - -
10/26/09 (M) File Systems
Assignment 2 due
LFS paper (see Sakai) PDF
10/28/09 (W) Midterm review - PDF
11/2/09 (M) Midterm exam
Assignment 3 out
- -
11/4/09 (W) Midterm solutions - PDF
11/9/09 (M) No class (out of town) - -
11/11/09 (W) Disks and I/O Chapter 12, 13 -
11/16/09 (M) Disks and I/O Chapter 12, 13 -
11/19/09 (W) Security Chapter 14, 15 PDF
11/23/09 (M) Security Chapter 14, 15 -
11/30/09 (M) Distributed Systems Chapter 16, 17, 18, 11 PDF
12/2/09 (W) Distributed systems
Assignment 3 due
Chapter 16, 17, 18, 11 -
12/7/09 (M) Real-time Systems Chapter 9 PDF
12/10/09 (M) Final Review
Project Reports Due
TBD PDF

Homeworks

There will be three homework assignments, each of which will require significant amounts of programming (in C). The assigments will be posted here as the semester proceeds. Programming assignments can be done in teams of no larger than three students. Each team member is required to contribute to the programming assignment. There will be project demonstrations to ensure that all team members have contributed equally to the assignment.

Project

Honors section students and graduate students enrolled in the course will have to do a course project that will account for 15% of their course grade. The course project will involve deeper investigation of one of the topics covered in the class (the choice of the topic will be decided upon consultation with the instructor). The project must involve a significant design and implementation component. Projects can be done in teams of size up to three students. Students may also undertake a literature survey as a course project, although the student will have to convince the instructor why he/she wants to undertake the survey. In that case, projects must be done individually.

Students will have to document their efforts in a project report at the end of the semester. There are no strict page limits, for a short, well-written and to-the-point paper is better a long, poorly-written and vacuous one. Nevertheless, as an informal guideline, you should expect to write about 10 single-spaced pages (roughly about 7500 words) worth of material, including figures, charts and references. The structure of the project report must resemble a computer science conference-style paper, good examples of which will be provided to students upon request. Students will also be required to demonstrate their project.

Students who are required to do a project must also submit a project proposal by October 19th, identifying team-members and the topic that will be investigated.

Project Proposal Due: October 19, 2009.
Project Reports/Demos Due: December 10, 2009.


Grading

Undergraduate students will be graded as follows: Honors-section students and graduate students are required to do a course project and will be graded as follows: We will occasionally have unannounced pop-quizzes in class. Points gained on these pop-quizzes will count towards your final grade on the course.

Exams and written homeworks must be strictly individual work. Programming assignments will be done in groups of up to three students. Collaboration with other groups on programming assignments is encouraged at the level of ideas. Feel free to ask each other questions, brainstorm on algorithms, or work together at a blackboard. You should not, however, copy the actual code for programming assignments, or copy the wording for written homeworks. Any violation of these rules will be considered cheating and dealt with severely. Here are links to the Rutgers University Academic Integrity Policy and the Department of Computer Science Integrity Policy.


Resources on the Web

There are plenty of resources available on the Web that students may find useful for their programming assignments and projects. The following are a few representative pointers. I will continue to add more links here over the semester.

Programming manuals and tools

Tips to read academic papers (useful for literature surveys)

Tips for good technical writing (useful for project reports)

You will find these sources useful for technical writing (e.g., your research project reports).
Vinod Ganapathy