CS 450 Syllabus - Spring 2019


This is the syllabus for CS 450: Operating Systems. This class is meant for junior/senior undergraduates and is a core requirement for the CS curriculum. Both CS 350 and CS 351 are required prerequisites.

Course Goals

My goal with this course is for you to be exposed to and become familiar with the following:

  1. Operating system architectures and design tradeoffs
  2. Programming patterns and sound programming principles for large software systems
  3. Virtual memory and resource virtualization
  4. Principles underlying the distinction between policy vs. mechanism
  5. Principles of End-to-end systems design
  6. Concurrency and Safety
  7. Concurrency vs. Parallelism
  8. Practical debugging
  9. I/O Devices
  10. File Systems
  11. Persistence
  12. Non-volatile memories and emerging technologies
  13. Future OS directions and trends

Course Outcomes

  1. Explain the range of requirements that a modern operating system has to address.
  2. Define the functionality that a modern operating system must deliver to meet a particular need.
  3. Articulate design tradeoffs inherent in operating system design.
  4. Explain the concept of a logical layer.
  5. From the perspective of building operating systems, explain the benefits of building these layers in a hierarchical fashion.
  6. Describe how the resources of the computer system are managed by software.
  7. Relate system state to user protection.
  8. Justify the presence of concurrency within the framework of an operating system.
  9. Demonstrate the potential run-time problems arising from the concurrent operation of many (possibly a dynamic number of) tasks.
  10. Summarize the range of mechanisms (at an operating system level) that can be employed to realize concurrent systems and be able to describe the benefits of each.
  11. Explain the different states that a task may pass through and the data structures needed to support the management of many tasks.
  12. Compare and contrast the common algorithms used for both preemptive and non-preemptive scheduling of tasks in operating systems.
  13. Describe relationships between scheduling algorithms and application domains.
  14. Investigate the wider applicability of scheduling in such contexts as disk I/O, networking scheduling, and project scheduling.
  15. Introduce memory hierarchy and cost-performance tradeoffs.
  16. Explain what virtual memory is and how it is realized in hardware and software.
  17. Examine the wider applicability and relevance of the concepts of virtual entity and of caching.
  18. Evaluate the trade-offs in terms of memory size (main memory, cache memory, auxiliary memory) and processor speed.
  19. Defend the different ways of allocating memory to tasks on the basis of the relative merits of each.
  20. Summarize the features of an operating system used to provide protection and security, and describe the limitations of each of these.
  21. Summarize the full range of considerations that support file systems.

Program Outcomes

  1. An ability to apply knowledge of computing and mathematics appropriate to the program's student outcomes and to the discipline.
  2. An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
  3. Recognition of the need for, and an ability to engage in, continuing professional development.
  4. An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
  5. Be prepared to enter a top-ranked graduate program in Computer Science.


You're expected to attend lectures; I will likely post my lecture notes/slides online after lecture, but this is not a guarantee, so come to lecture!

Required Textbook

Note that this textbook is required, but is freely available online. I will not

Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau, 2015.


For every lecture, I will be posting required readings on the course webpage, mostly from the OSTEP book, but also from other sources. Be sure to read them! If a reading is marked as required, the reading content is fair game for exams. Any readings I post that are required will be freely available either from the web or from me. I may post optional/extra reading as well. These may play into any extra credit I choose to include on exmas.


By far the most important part of this course is the projects. You will learn by doing. Thus, they will comprise the lion's share of your grade. Unless otherwise noted you will be working individually on projects.

Submitting Work

Each project will have specific instructions on handing in work. You should follow the directions in the handout page.

Bad Submissions

If you submit the wrong file or a program that doesn't compile or doesn't run at all, or one which does not pass any tests, you will earn a zero for that project. It is your responsibility to make sure that you submit what you intend to submit and that you submit a well-formed, compiles-without-errors file. When possible we will include a suite of tests for you to verify your work.

Late Projects

Each of you will have a total allocation of 48 late hours for the entire course. These only apply to the projects (not the exams). You can use these hours however you want, but be aware of your current quota. For example, if you submit a project 2 hours late, you will have 46 late hours remaining. If I submit 2 days late for one project, that will use up all of my late hours. After you've exhausted your late hours, your grade will be penalized. Beyond that point, one hour late is the same as one day late.

For all projects, you can submit up to two days late with penalties. Each day you will be docked 10%. So if I have a perfect project, submitting two days late will give me 80%. After two days, submissions will not be accepted.

If you have an emergency or are ill, it may be possible to excuse you from a project or to get you an extension, but contact me (or have a friend or family member contact me) as soon as you can. Please don't wait until you get well / get back into town / start worrying about your Final Grade. Overly delayed requests may be denied. Requests made after classes end will be denied.


If you think a test or project has been misgraded, then if a TA graded it, discuss it with that TA first. If you still think it's been misgraded, discuss it with me. Regrade requests must be specific: Don't just ask us to regrade an entire problem or assignment. Also, you must include your justification for a higher grade: Don't just say you think you deserve more points. Regrade requests should be timely, else they may be denied. In particular, regrade requests made after classes end will be denied.


There will be two exams, a midterm and a final exam. The midterm will be held during regular class hours, and the final exam will be held pursuant to the registrar's final exam schedule.

One Page of Notes

For both tests, you can bring one 8.5" x 11" or A4 page of notes (both sides; doesn't matter if it's hand-written or printed, etc.) No other notes, no sharing notes, no books; no phones, no calculators or other aids or devices.

Makeup Exams

If you can't make it to an exam because you're sick or have an emergency, it may be possible to get you a makeup exam, but contact me (or have a friend or family member contact the instructor) as soon as you can. Overly delayed requests may be denied, so don't wait until you get well / get back into town / start worrying about your Final Grade. Requests made after classes end will be denied.

Make-up exams are not a guaranteed right, especially if you ask after the exam. Barring some urgent reason, you must take tests at the scheduled time (Getting a cheaper airline ticket is not considered to be an urgent reason).

No Retaking Exams

If during the test, you feel too ill to finish it, stop and come up and talk to me so we can work on rescheduling it — don't turn in the test and then come to me later. Similarly, don't turn in the Final if you want a grade of Incomplete.

End-of-Semester Score

The grade break-down for the semester is as follows:

EOS PtsCategory
60.0% Projects
15.0% Midterm Exam
20.0% Final Exam
5.0% In-Class Participation
All values are scaled to 100 before taking the final sum

Letter Grade Cutoffs

LetterEOS Pts
A 90 - 100
B 80 - 89
C 70 - 79
D 60 - 69
E 0 - 59

Grading Policies


Curving is done by adding a constant 0 to everyone's total score. In general, I will curve to raise the class average to a middle C or so, but this is not a hard promise. The Midterm Grade curve (if any) is not an indicator of the Final Grade curve (if any). I avoid changing the grade cutoffs, but this also is not a hard promise.

Borderline Grades

Roughly nine times out of ten, there's no ambiguity as to what your Final Grade is; the only judgement comes in at the borders. I will look for every reason I can find to push you up to the next higher grade, such as: Your Final Exam score is much higher than the average, or your Final Exam score is higher than your earlier test scores. In addition, if you're two points short on the Final Exam, I'll give you the benefit of the doubt. On the other hand, if you're five points short, you get the lower grade.

Grading Principles

The Final Grade describes the overall quality of your semester's work: It all gets piled onto a big scale and my job is to tell you what the Quality meter says.

For figuring out Final Grades, there are two ethical/professional principles I must follow. Violating these principles would be unethical and unprofessional of me and it would cheat the other students.

First principle: Grades can be based only on the quality of your work. So unfortunately, you can work hard for the course but still earn a low grade. I'm sorry if a low grade makes your life harder, but that's absolutely not a reason to raise your grade.

The second principle: Grading has to be done on a level playing field: I can't give one person an opportunity that I don't offer to everyone unless it's to re-level the playing field. This is why questions like "Can I retake the an test or can you give me some extra work to raise my grade?" have the answer "No."

Academic Honesty

In short: DO NOT CHEAT! Why would you do that? You're paying for this, so you might as well get something out of it. All students are responsible for maintaining the highest level of academic integrity, as discussed in the IIT Code of Academic Honesty. The normal penalty for violations of this policy, especially copying or other cheating during tests, is an E for the course, plus notification of the student's advisor and/or department and any appropriate administrators.

Disability Policy

Reasonable accommodations will be made for students with a letter of accommodation from The Center for Disability Resources (3424 S. State Street - 1C3-2; 312-567-5744; ). Please discuss any necessary accommodations with me, well ahead of time.