CS 450: Operating Systems


Course Overview

In this course you will explore the following fundamental concepts underlying modern operating systems:

  • Processes, Threads, and Context Switching
  • System Calls, Interrupts, and Exceptions
  • Kernel and User Modes
  • Scheduling
  • IPC
  • Address spaces, virtual memory and memory management
  • I/O and device management
  • File systems
  • Concurrency

You will refine your understanding of the services provided and the resources managed by an operating system. To solidify your knowledge, you will study the source code for an existing operating system, and experiment with simulators for various operating system components.


To be successful in this course you should have substantial programming experience in a high level language (C is ideal) with direct access to the underlying operating system's system call interface. You should be, at minimum, adept at making use of the language's facilities for process control, memory management, I/O, file management, and IPC. You should also be familiar with the facilities that exist in modern operating systems for the purpose of memory management. Experience with some form of assembly language is also handy.

If you are working your way through IIT's undergraduate curriculum, CS 350 and CS 351 are prerequisite courses. CS 401 and CS 402 are the graduate equivalents.


Your final grade will be computed as follows:

  • 50% Assignments
  • 25% Midterm Exam
  • 25% Final Exam

And here's the grade scale:

  • A: 90%-100%
  • B: 80-89%
  • C: 70-79%
  • D: 60-69%
  • E: 0-59%

Grades are never curved, but exam scores may be linearly adjusted so that the class average is 75%. Note that at my discretion you must score at least 50% on both exams (after normalization) in order to pass the class.


Problem sets and machine problems will be periodically assigned. Some assignments may involve some amount of coding and computer simulation. Your submissions *must be typed* (handwritten assignments will not be accepted) and submitted by way of the Blackboard digital dropbox, or in the case of most of the machine problems, submitted through the git repository. More details on this process are explained on the applicable assignment page(s). All submissions should contain a header stating the student's name, section number, and campus ID.


Makeup exams must be cleared with me beforehand, and will be administered at my discretion. The final exam will occur at the time and place set by the official IIT final exam schedule. Both exams will be closed-book, closed-notes.

Late Policy

An assignment is late if it is not turned in by 11:59PM of the due date. Late assignments, unless cleared in advance with the instructor, are subject to a 30% reduction in points. After 1 week (7 days) past the due date, an assignment will not receive any points at all, but may be submitted for feedback.

Academic Integrity

You are welcome (encouraged even) to discuss assignments with classmates, but all final work must be your own. Plagiarism will result, at the very least, in the entire plagiarized assignment receiving a zero – other disciplinary actions may be taken at my discretion. You should take care to attribute any ideas incorporated into your work to their original source, if that source is not yourself. This has limits, however, and the majority of the assignment must be your own work. I will actively check for dishonesty and enforce this policy!

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.

Last Updated: Tuesday, January 12, 2016 11:02 PM