CS 354: Operating Systems (Fall 2018)

The purpose of this course is to discuss the design of operating systems, and operating systems concepts that appear in other advanced systems. Topics we will cover include operating system organization, system programming, networked and distributed systems, and storage systems. Most of the time will be spent on multi-process systems (processes, interprocess communication, and synchronization), memory organization (paging), resource allocation and scheduling, file systems, and I/O.

In Fall 2018, there are two lecture sections.

Section 1: CS-35400-LE1 Section 2: CS-35400-LE2
Instructor: Sonia Fahmy Chunyi Peng
E-mail: fahmy -AT- cs.purdue.edu chunyi -AT- purdue.edu
Class hours/locations: Krannert Building G016, MWF 9:30 AM - 10:20 AM Hampton Hall of Civil Eng. 1144, MW 4:30 PM - 5:45 PM
Office hours: LWSN 2142H, M 11:30 AM - 12:20 PM, Th 1:00 - 1:50 PM, or by appointment (send e-mail) LWSN 2142E, TW 1:00 - 2:00 PM, or by appointment (send e-mail)

While the two sections use similar course material including slides, lab assignments, midterm, and final exam, please attend the section you are enrolled in.

Course Homepage

This official course webpage http://www.cs.purdue.edu/homes/cs354 serves as an anchor. All course material including class handouts, lecture notes, lab assignments, and other information can be found on Piazza.


  1. Operating System Design: The XINU Approach, Second Edition, Feb 18, 2015 by Douglas Comer.

  2. Recommended:
    1. Operating System Concepts, 9th Edition, by Abraham Silberschatz, Peter B. Galvin, Greg Gagne.
    2. Operating Systems: Three Easy Pieces, by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau.


    After successfully completing this course:
    1. You will understand the internals of an Operating System;
    2. You will be comfortable with kernel programming in the Xinu environment.

    Course Organization

    The course is organized in lecture sessions and PSO sessions (see the Staff page for a listing of PSO times). You are expected to attend the lectures and PSOs that you registered for every week, since that is where instructors and TAs will explain details of the material that will be on the exams, and material that will help you complete the lab assignments. There will be unannounced quizzes in class, and no makeup quizzes will be given. There will be no PSOs during the first week of classes (the week of August 20th).

    Announcements and Discussion

    All announcements will be posted on Piazza, or made in class. Piazza will also be the primary medium for communication between the TAs and the students (use a private post when appropriate). Most handouts, including lecture notes, lab specifications, and supplementary materials will be posted on Piazza.
    Make sure that you check the Piazza discussion and your Purdue e-mail frequently (at least twice per day). Please do NOT post answers to the assignments, though posting general clarifications is fine. Complaints about the assignments or the class should NOT be posted to the group-- instead, they should be e-mailed to the instructors. Please be patient and courteous. Please ensure that the tone of your messages is respectful and the language used is appropriate.

    Tentative Grading Plan

    1. Midterm Exam: 18% (Thursday, October 11th, 2018, 6:30 PM, Lilly 1105)
    2. Final Exam: 27% (Wednesday, December 12th, 2018, 3:30--5:30 PM, Fowler Hall, Stewart Center)
    3. Lab assignments and written homeworks (weighted according to time given): 50%
    4. In-class pop (unannounced) Quizzes: 5%
    You can view your grades on blackboard.


    No makeup exams will be given except for a documented severe medical or family emergency. It is the responsibility of the students to arrive on time for the exam.
    Exams are closed-book, closed-notes, closed-discussion, closed-smartphone/laptop, closed-calculator.

    Due Dates
    All assignments are due on the dates and times specified. It is the responsibility of the students to manage their time so that the assignments can be submitted before the deadline.

    Each student will be allowed four days of extensions which can be applied to any combination of assignments during the semester without penalty. NO late submissions will be accepted otherwise. Use of a partial day (even one minute late!) will be counted as a full day. Extension days CANNOT be rearranged after they are applied to a submission. Use them wisely! You need NOT notify us that you are using an extension day or submitting late; we will keep track of this for every student automatically based on the timestamp of the submission. Any additional extensions will be granted only due to serious and documented medical or family emergencies.

    Tentative Policy for Regrades
    If you feel that you have been unfairly graded on a lab assignment, quiz or exam, you should petition the appropriate TA or Professor in writing within two weeks of distribution of the graded work. After two weeks, NO regrade requests will be honored. For lab assignments, you are allowed to change up to five lines of code (where a line contains at most one statement/semi-colon) if that makes your program work, but there will be a five-point penalty per changed line/statement. This policy is subject to change.

    Academic Dishonesty
    We wish to foster an open and collegial class environment. At the same time, we are vigorously opposed to academic dishonesty because it seriously detracts from the education of honest students. Because of this, we have the following standard policy on academic honesty, consistent with Purdue University's official policy and Purdue's Honor Pledge.

    1. It is permissible to discuss a GENERAL METHOD of solution with other students, or to make use of high-level reference materials in the library or online. If you do this, you will be expected to CLEARLY DISCLOSE with whom you discussed the method of solution, or to cite the references used. Failure to do so will be considered cheating or plagiarism. The use of "method of solution" means a GENERAL discussion of technique or algorithm, such as one would reasonably expect to occur standing in front of a whiteboard, and precludes the detailed discussion of code or written assignments. Specifically, looking at another student's code on his/her computer monitor or copying code from an online source is NOT allowed.
    2. Unless otherwise explicitly specified, all written assignments or code that is submitted is to be ENTIRELY the student's own work. Using any code or copying any assignment from others or from an online source is strictly prohibited without advance prior permission from the instructor. This includes the use of code others have submitted in the past, or solutions found on the Internet.
    3. All students work is their own. Students who do share their work with others are as responsible for academic dishonesty as the student receiving the material. Students are not to show work to other students, in the class or outside. Students are responsible for the security of their work and should ensure that printed copies are not left in accessible places, that file/directory permissions are set to be unreadable to others (e.g. use "chmod -R 700 *" from your home directory), and that all version control repositories (e.g., github) are private. If you need assistance protecting your work, please contact your TA or instructor.
    4. Students who encourage others to cheat or plagiarize, or students who are aware of plagiarism or cheating and do not report it are also participating in academically dishonest behavior.
    5. Be aware that we will use a software tool called MOSS (http://theory.stanford.edu/~aiken/moss/) to check for copying among submitted assignments. Additionally, the instructor and TA will be inspecting all submitted material to ensure honesty.
    Any case of academic dishonesty will be dealt with by a severe grade penalty in the overall class grade and referral to the office of the Dean of Students.
    Classroom Policy
    Class participation and discussions are strongly encouraged. However, please be considerate to others: avoid coming to class late, leaving early, talking to other students, etc. Please turn off your cell phone before the class starts.

    Emergency Policy
    In the event of a major campus emergency, course requirements, deadlines and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Any changes will be posted to the course web page or on Piazza. Information about emergency preparedness can be found here.

    You can also review the policies page maintained by Professor Gene Spafford for additional information about academic honesty and other policies.


    If you are experiencing stress or personal problems, Purdue provides counseling services through the Purdue CAPS Center. Please see https://www.purdue.edu/CAPS/ for more details.