CS5600 - Computer Systems

Fall 2010

General Course Information

Room and Time:108 West Village H
Wednesdays, 6:00pm - 9:00pm
Instructor:Alan Mislove
250 West Village H
Office Hours:Tuesdays, 3:00pm - 5:00pm
E-mail is the easiest and fastest way to contact me.
Please put the string "[CS5600]" in the subject line of your message
Teaching Assistant:Abutalib Aghayev
Lab Hours:Tuesdays, 5:00pm - 7:00pm, 212 West Village H
Class Forum:On Blackboard

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; the projects expose students to the implementation aspects of operating systems and serves to solidify students' understanding of the course material.


To succeed in this course, you to understand the basics of computer architecture, and to have experience implementing non-trivial systems-type projects. You should also be able to read UNIX manual pages, and be able to familiarize yourself with UNIX utilities.

This course will be project-centric, and all students will complete in projects in groups of two. Thus, to succeed in this course, you must be able to work in a group. I will allow you to form your own groups, but as you are free to choose your partner, I will not be sympathetic to complaints at the end of the semester about how your partner did not do any work.

Finally, to succeed in this course, you must have familiarity with C and UNIX compilation utilities (make, gcc, etc...). It is also highly recommended that you become familiar with using gdb, as this will greatly aid you in completing the projects. At a high level, you should be motivated, eager to learn, willing to work hard, and make up, on your own, any prerequisite deficiencies you may have.


The textbook for the course is:

Operating Systems Concepts, 8th Edition
   by Silberschatz, Galvin, and Gagne, Addison-Wesley.

The following books are recommended for reference:

The Magic Garden Explained, The Internals of UNIX System V Release 4
   by Goodheart and Cox, Prentice-Hall.

The Design and Implementation of the 4.4 BSD Operating System
   by McKusick, Bostic, Karels, Quarterman, Addison-Wesley.

Design of the OSF/1 Operating System
   by Open Software Foundation, Prentice-Hall.

Inside Windows NT, Second Edition
   by Custer, Microsoft Press.


Projects (4)15% each
Exams15% and 20%, respectively


Handouts, Readings, and Projects

(Updated) Schedule
Updated Project Description and Schedule

Pintos Project 1: Threading Library

Pintos Project 2: User Programs
  Milestone due 11:59:59p on Friday, October 22nd.
    Testcases args-none args-single args-multiple args-dbl-space args-many exit
  Final project due 11:59:59p on Tuesday, November 2nd
    Testcases (all others)

Pintos Project 3: Virtual Memory
  Milestone due 11:59:59p on Tuesday, November 16th
    Testcases [all project 2 testcases; you must have implemented a frame table]
  Final project due 11:59:59p on Tuesday, December 7th
    Testcases (all others)

Pintos Project 4: File System extra credit, worth 7.5% of your grade
  Final project due 11:59:59p on Thursday, December 16th Friday, December 17th (hard deadline; no slip days may be used)

Documentation for our course project, Pintos, is available here.

To be read for class on December 1st, 2010: Reflections on Trusting Trust by Ken Thompson

Scribe Notes

Lecture 1: Part 1 by Megan Passanisi, Part 2 by Shinhyuk Park, Part 3 by Yinbo Wang
Lecture 2: Part 1 by Shinhyuk Park, Part 2 by Hari Prashanth, Part 3 by Michael Reed
Lecture 3: Part 1 by Guanghao Ding, Part 2 by Yue Zhang
Lecture 4: Part 1 by Ashish Musale, Part 2 by Ben Cordes
Lecture 5: Part 1 by Kunjan Kshetri, Part 2 by Rauno Peets, Part 3 by Adam Sheehan
Lecture 6: Part 1 by Ameya Karkhanis, Part 2 by Matt Ivester, Part 3 by Deepak Soni
Lecture 7: Part 1 by Xiaofeng Yue, Part 2 by Rui Du, Part 3 by Jenny Mankin
Lecture 8: Part 1 by Jiaxing Zhang, Part 2 by Komal Sodha, Part 3 by Li Liang
Lecture 9: Part 1 by Wu Jiang, Part 2 by Hai Yu
Lecture 10: Part 1 by Praveenkumar, Part 2 by Nihal Singh, Part 3 by Ray Cheng
Lecture 11: Part 1 by Greg Kerr, Part 2 by Matthew Ellis


This class will make extensive use of Blackboard for posting materials and submitting assignments. Please make sure that you regularly check the email address used by Blackboard (either @neu.edu or @husky.neu.edu) or ensure that it is forwarded correctly.

We will provide a Web forum via Blackboard that can be used by students to ask questions and exchange wisdom while completing the projects in this course. Please use the forum to post questions and answers that may be useful to others. Specifically, questions of the form ``How do I link foo?", ``Does such-and-such option in the compiler work for you?", or ``What is the precise interpretation of project question III, part b?" should be posted on the forum first. If you mail me (or other course staff) these questions, we might not be able to answer them on time.

Attendance, Group Interactions, and Class Participation

This is a graduate course; I will not mandate you to come to class (you are still responsible for all the material covered in class).  The class projects are a major part of this course, and please be aware that you will be working in groups of two. Lastly, note that 5% of your grade is based upon class participation.   This is to encourage you to voice your ideas in class and to post them to the forum.  Minimally, I must know your name by the end of the term in order for you to get any points for class participation.