CS 450: Operating Systems

Course Overview

This class is the capstone to the systems sequence in the undergraduate computer science curriculum, consisting of CS 350 (Computer Organization and Assembly Language), CS 351 (Systems Programming), and CS 450 (Operating Systems). As such, it draws from and builds on materials covered in preceding classes, and seeks to synthesize an intuitive and comprehensive understanding of the design and implementation of the software layer known as the operating system, which underpins the vast majority of code running on modern general-purpose computers.

Our treatment of operating systems includes the following topics:

After successfully completing this course, you should be able to:

  1. Define the functionality that modern operating systems must provide.
  2. Articulate design tradeoffs inherent in operating system design.
  3. Understand the benefits of software modularity and how it applies to OS design
  4. Understand the importance of concurrency and how to implement concurrent abstractions correctly in an OS
  5. Understand OS scheduling policies and mechanisms (for execution contexts, I/O)
  6. Understand the benefits and applications of resource virtualization, and how it is achieved by the OS
  7. Understand how operating systems implement protection, isolation, and access control
  8. Understand the fundamentals of data storage, including file abstractions, file systems, object storage, etc.
  9. Understand how OSes employ caching in various ways to improve performance, and how this impacts system complexity
  10. Understand and apply programming patterns for efficient systems implementation

Textbook

The primary textbook we will be using is:

It is available online, for free.

Prerequisites

To be succesful in this course, you should have knowledge of / experience with the following:

CS 350/401 and CS 351/402 are prerequisite courses.

Grading

Your final grade will be computed as follows:

And here's the grade scale:

Assignments

Most of the assignments in this class will require you to read and write a substantial amount of code in C and/or assembly. All programming assignments will be submitted via version control system, with specific directions included in the assignment writeup.

Late policy

Each student starts the semester with a 7-day late pool, which can be distributed however they please (one day at a time) across assignments. E.g., a student may choose to submit the first assignment 1 day late and the second assignment 2 days late, at which point they still have 4 late days to apply to later assignment(s). Once a student is out of late days, late assignments will not be accepted for credit.

Exams

There will be two exams. The midterm exam is tentatively scheduled for March 12th, and the final exam schedule will be published by the registrar mid-semester. Both exams will be administered online, and will be open-book, open-notes.

If you need to reschedule either exam for any reason, please contact me as far in advance as possible so we can make suitable arrangements. Once you sit for an exam, the score you earn on it is final (i.e., there are no "retakes").

Exam scores may be linearly scaled so that the class median/average (whichever is lower) is 75%. I will publish the scaling formula if and when I do this.

Academic Integrity

You are welcome to discuss assignments with classmates, but all final work must be your own. Academic dishonesty of any kind may result in a 0 on the assignment, a reduction in final grade, and/or referral to the Dean.

The IIT code of Academic Honesty may be found in the undergraduate handbook.

Disability Accommodations

Reasonable accommodations will be made for students with documented disabilities. In order to receive accommodations, students must obtain a letter of accommodation from the Center for Disability Resources. The Center for Disability Resources (CDR) is located in Life Sciences Room 218, telephone 312 567.5744 or disabilities@iit.edu.

Sexual Harassment and Discrimination Information

Illinois Tech prohibits all sexual harassment, sexual misconduct, and gender discrimination by any member of our community. This includes harassment among students, staff, or faculty. Sexual harassment of a student by a faculty member or sexual harassment of an employee by a supervisor is particularly serious. Such conduct may easily create an intimidating, hostile, or offensive environment.

Illinois Tech encourages anyone experiencing sexual harassment or sexual misconduct to speak with the Office of Title IX Compliance for information on support options and the resolution process.

You can report sexual harassment electronically at iit.edu/incidentreport, which may be completed anonymously. You may additionally report by contacting the Title IX Coordinator, Virginia Foster at foster@iit.edu or the Deputy Title IX Coordinator at eespeland@iit.edu.

For confidential support, you may reach Illinois Tech’s Confidential Advisor at (773) 907-1062. You can also contact a licensed practitioner in Illinois Tech’s Student Health and Wellness Center at student.health@iit.edu or (312)567-7550

For a comprehensive list of resources regarding counseling services, medical assistance, legal assistance and visa and immigration services, you can visit the Office of Title IX Compliance website at https://www.iit.edu/title-ix/resources.