course syllabus

« hide syllabus

course description

Discussion of various aspects of computer operating systems design and implementation. Topics include I/O programming, concurrent processes and synchronization problems, process management and scheduling of processes, virtual memory management, device management, file systems, deadlock problems, system calls, and interprocess communication. Programming projects are required.
Prerequisites: CSCI-2300 (Data Structures and Algorithms) and CSCI-2500 (Computer Organization)

learning outcomes

Upon successful completion of this course, students will:

  1. Demonstrate the ability to apply concepts of both classic and modern operating systems.
  2. Analyze operating systems by designing and implementing simulation models via a programming language.
  3. Implement specific operating system constructs in C on Unix platforms to create real-world systems-level programs and applications.

course web site

required textbook

Nutt/Kernighan/Stevens Text Operating Systems, C, and Unix Network Programming
Pearson Education Group, 2011
ISBN 9780558977993
(custom book - see below)

recommended books

Nutt Text Operating Systems, 3rd ed.
by Nutt
ISBN 0-201-77344-9

Kernighan and Ritchie Text The C Programming Language, 2nd ed.
by Kernighan and Ritchie
ISBN 0-13-110362-8

Stevens Text Unix Network Programming, Volume 1 (Sockets Networking API), 3rd ed.
by Stevens
ISBN 0-13-141155-1

required software

We will use a variety of programming languages, most of which have compilers or interpreters available for free download from the Web. We will also use a variety of platforms, including Windows, Linux, and Macintosh. Expect to write programs in C, C++, Java, and/or Python. To study operating system concepts, we will focus on C on Ubuntu.


There will be a midterm exam and a final exam, each of which is open book, open notes.

grading criteria

  • Homeworks ..... 25%
  • Projects ..... 25%
  • Midterm Exam ..... 25%
  • Final Exam ..... 25%


Because it is vital that students apply what they learn, expect frequent homework assignments, projects, and other such exercises. Assignments are due on the due date specified and will be penalized 10 points for each day late, up to a maximum of 5 days, after which the assignment cannot be accepted for credit.

Numerous assignments will be assigned and reviewed in subsequent classes, though not all will be collected for credit. Regardless, doing all such assignments will greatly improve your understanding of the course material and therefore your grades on homeworks, projects, and exams.

Instructions for submitting assignments will be made available for each assignment. All programming assignments must execute successfully in Ubuntu.

grading policies

Grades for individual and team-based assignments are determined by the instructor and the TAs. Students may appeal a grade by contacting the instructor via email or in person at the end of our designated class time.

Grades will be provided to students throughout the semester (via the RPI LMS) to provide an ongoing assessment of their progress. By mid-semester, students will have some homework and project grades, as well as their midterm exam scores.

attendance & classroom policies

Please attend class and be prepared to participate in class discussions and activities.

Further, team-based work requires full cooperation and coordination from each team member. Lack of participation is detrimental to team-based work and grades suffer accordingly. Note that students are not required to work in teams.

Turn off cell phones and other non-classroom electronic devices before class begins.

students with special needs

Federal law requires all colleges and universities to provide specified types of assistance to students with disabilities. If you have such special assistance, please obtain an authorizing memo from Disability Services for Students by contacting Mark Smith, Dean of Students, in the Dean of Students Office (x6266). Information about a student's special needs will be treated as confidential.

Please submit a copy of your authorizing memo to your professor well in advance of any affected exam or assignment. Failure to do so may result in a lack of special accommodations.

academic integrity

From The Rensselaer Handbook of Student Rights and Responsibilities: Intellectual integrity and credibility are the foundation of all academic work. Academic dishonesty is, by definition, considered a flagrant offense to the educational process. It is taken seriously by students, faculty, and Rensselaer and will be addressed in an effective manner.

Individual programming assignments in this course must be the sole work of the individual student, though your professor, TAs, and fellow classmates may help in figuring out how to solve the given problems. For team-based work (though working in a team is optional), work must be the sole work of the individual team members, though your professor, TAs, and fellow classmates may help in figuring out how to solve the given problems.

Copying of code is strictly forbidden and will not be tolerated.

Tests and exams in this course are certainly to be the sole work of each individual student.

If found in violation of academic dishonesty policy, students may be subject to two types of penalties: (1) the instructor administers an academic (grade) penalty; and/or (2) the student may be subject to the procedures and penalties of the student judicial system outlined in this handbook.

Abhirami Baskaran
TA: Abhirami Baskaran
Wed 1:30-5:30pm
(in AE 217)
Jay Sanghvi
TA: Jay Sanghvi
Wed 10am-12pm,
Thurs 3-5pm
(in AE 217)


  • On 12/15 from 3:00-6:00pm: FINAL EXAM in DCC 324
  • Read: Nutt: Chapters 1-3, 5-13
  • Read: C: Chapters 5-6, 8, Appendix B
  • Read: Unix: Chapters 1, 3-5, 13

Lecture Notes & Code

Unix Environment

Valid CSS Level 2.1 Valid XHTML 1.1