CS 456 - Operating Systems - Spring 2020


Blue Screen of Death
When operating systems fail. To be avoided.

We use operating systems every day, and we interact with them constantly, but primarily on a superficial level. The operating system exists, from the user's perspective, to let us run applications and manage data. As usual, there is a great deal of complexity hidden underneath that usage.

Operating Systems sit between applications and the hardware. They manage resources, such as memory, processor time, and storage space, to present clean, usable interfaces on which applications can be built.

This course will explore some of the fundamental concepts of operating systems, giving you an understanding of how they work that will inform your development of programs that run on top of them.

For an idea of the specific topics covered in the course, see the rough schedule for the semester below.


Lecture: TR 10:50AM-12:05PM / CNS E201
Instructor: Mark Liffiton
Office: CNS C207B   (2nd floor CNS, in middle of building over atrium
Office Hours: (visual schedule)
Tue, Thu 10-10:40am; Tue 4-5pm; Wed 10-11am; (by appointment) Fri 10am-noon; or email/drop in any time.
If your schedule prevents you from attending my office hours, let me know. I'm happy to set up alternate meetings.
Contact (you→me): Email is preferred (please start the subject with "CS456:").
For more pressing matters, my office # is 309-556-3535.
Contact (me→you): I will post course announcements through Moodle, and they will be sent to your IWU email accounts. Check your IWU email frequently or have it forwarded to an address you do check.
Textbook: Operating Systems: Three Easy Pieces
It can be read for free online, and physical copies are available for purchase as well.
If you want an additional textbook, Modern Operating Systems (fourth edition) by Andrew S. Tanenbaum and Herbert Bos is decent, but it is not required for this course.
Course Management:
Moodle — reading, assignments, quizzes, announcements, and other online resources will be posted here.

Weekly Schedule

This is a tentative schedule, and it is subject to change.
Refer to the course's Moodle for detailed, up-to-date reading and assignments.

1 01/09 Thu Introduction / Overview
2 01/14 Tue
01/16 Thu
3 01/21 Tue Processes and Scheduling
01/23 Thu
4 01/28 Tue
01/30 Thu Memory Management
5 02/04 Tue
02/06 Thu
6 02/11 Tue Exam 1
02/13 Thu Threads and Concurrency
7 02/18 Tue
02/20 Thu
8 02/25 Tue
02/27 Thu Input / Output
9 03/03 Tue File Systems
03/05 Thu
10 03/10 Tue Spring Break
03/12 Thu
11 03/17 Tue Virtual Machines
03/19 Thu Linux
12 03/24 Tue
03/26 Thu Exam 2
13 03/31 Tue Security
04/02 Thu
14 04/07 Tue
04/09 Thu
15 04/14 Tue
04/16 Thu Multi-processor Systems
16 04/21 Tue Distributed Systems
04/24 Fri 1:15-3:15pm — Final Exam


The final grade will be based roughly on the following breakdown:

Exam 120%
Exam 220%
Final Exam25%


Assignments will be posted on the course's Moodle site, usually about a week before they are due, and they will be collected there as well. Submissions should be in the form of plain text or PDF*. I will aim to get them graded and returned to you by the following week.

Late Policy

Assignments will be due at set times; they will be considered late at any point after that time. An assignment will lose 10% of the total possible points for every day it is late, and after five days it will not be accepted.

Assignments can't be accepted at all after solutions have been handed out or the graded work has been returned to the class.


There will be two exams during the semester, held in class. The final will be held during the final period.


As you may have heard from other teachers: If everyone does well, that's great! I'm not going to lower anyone's grade to fit some predetermined grade distribution. However, scores given on individual quizzes or exams (especially exams) may not translate directly into a letter grade on the traditional scale. As explained quite well here:

"A percentage shows how much of a particular exam was dealt with successfully, but what test is so perfect that it could completely determine extent of knowledge or ability? If a student gets a grade of 90%, it does not mean they know 90% of everything in the subject. Wise students will begin to look at scores as a place on a continuum of achievement rather than analysis carved in stone."


If you would like to request a regrade, submit a request in writing (via email) within one week of receiving the graded assignment, exam, etc. Indicate exactly which part you believe deserves a different score and why.

Engagement / Attendance

Class time will be complementary to the reading, and you will need both in order to learn all of the material in this class. Furthermore, each student benefits from the engagement of all others in the class. Five percent of your final grade will be based on that engagement. Attending every class period on time and prepared is the minimal expectation, worth about 70% of the engagement points. Points can be gained by constructive participation, in class or out, such as asking questions, answering them, responding in the forum, sharing insights or useful/interesting resources with the class (posting in the forum, for example), investigating concepts beyond the requirement in class, working on small independent learning projects, and in many other ways; points can be lost for excessive (more than 3) unexcused absences, disrupting class (e.g., regularly showing up late), dominating the conversation, and the like.

Absences can be excused with documentation from health services or the Dean of Students' office, or if arrangements are made with me more than a week in advance. In general, if you know you will be missing a class, let me know as soon as you do.

Office Hours

If any concept, piece of code, compiler error, or anything else related to this course is ever unclear to you, please come see me during my office hours. One-on-one, I can help you bridge the gap from what you do understand to what you want to understand. It will generally be the easiest, fastest way to clarify something.

If you cannot attend any of my regularly scheduled office hours, I'm more than happy to setup another time to meet. Just let me know.

Working with Others

I strongly encourage you to form study groups with your classmates, compare notes, explain concepts to one another, and generally help each other learn the material in this course.

Any material turned in for a grade must be your own individual work, though. You may work on concepts with other students, but I ask that you not discuss assigned problems until after the work has been turned in. Giving or even showing your solutions or code to another student is not allowed.

This has two goals: 1) let the grades be a reflection of each student's own work, and 2) avoid situations where one person solves a problem and another records the answer as their own work without really learning. I understand that the line between discussing concepts and solving problems can be vague, so I ask that you use your own judgement with those two goals in mind and ask me if a situation is unclear.

For details on the university's policies regarding academic honesty, please read the sections of the student handbook on conduct, cheating, and plagiarism here. Cheating of any form can result in failing the course and a report to the associate provost.


Illinois Wesleyan University strives to make all learning experiences as accessible as possible. If you anticipate or experience academic barriers based on a disability (including mental health and chronic or temporary medical conditions), it is your responsibility to register with Disability Services. Please note that accommodations are not retroactive and accommodations cannot be provided until I receive an email from Disability Services. Once the email is sent, please make arrangements with me as soon as possible to discuss your accommodations confidentially so they may be implemented in a timely fashion. For more information contact Disability Services by visiting 110 Holmes Hall, calling 309-556-3231, or emailing cshipley@iwu.edu.


Our university's mission statement includes, "The University through our policies, programs and practices is committed to diversity [...]" Our school and this course are made stronger by the mix of people that come into it bringing a diversity of ideas, experiences, and backgrounds. I expect everyone in this course — instructor, TA, and student — to contribute to an inclusive atmosphere that respects the diversity of all others in it. Dimensions of diversity can include sex, race, age, national origin, ethnicity, gender identity and expression, intellectual and physical ability, sexual orientation, income, faith and non-faith perspectives, socio-economic class, political ideology, education, primary language, family status, military experience, cognitive style, and communication style. The individual intersection of these experiences and characteristics must be valued in our community.
[adapted from UCF FCTL]