CS 450: Operating Systems
Table of Contents
The midterm exam is in session! Download the PDF of the take-home exam. Note that posts to Piazza will be disabled until the due date — please e-mail me directly if you have questions about the exam. The BlackBoard submission link can be found under the "Assignments" tab.
—
Here's where you'll find the lecture calendar, slides, prescribed readings, assignment writeups and other useful resources for the class.
Other websites you'll need to visit periodically: our Vimeo channel and the IIT academic calendar.
Calendar
The following schedule is tentative, and may be updated as the semester progresses.
While (most) lecture slides are available as PDF downloads, recognize that they are meant to supplement lectures and will do you no good if you miss class! I generally edit and update my slides up to the minute before lecture, so check back afterwards to get the latest updates.
Date | Topic & Slides | Reading |
---|---|---|
Aug 19 | Preliminaries | |
Aug 21 | Operating system overview | OSC chapts 1-2 |
Aug 25 - Sep 4 | Scheduling (Sep 2 = Labor Day) | OSC chapt 6 |
Sep 9 - Sep 11 | Queueing Theory | |
Sep 16 - Sep 18 | xv6 code review, source handout | xv6 chapts 0-3, 5 |
Sep 23 - Sep 30 | Concurrency, Races & Synchronization | OSC chapt 5, LBoS chaps 1-4 |
Oct 2 | xv6 concurrency mechanisms | |
Oct 7 | Fall Break | |
Oct 9 | Midterm Exam | |
Oct 14 - Oct 21 | Alternative concurrent programming models | |
Oct 23 - Oct 28 | Deadlock | OSC chapt 7 |
Oct 30 - Nov 6 | File systems | OSC chapt 10-12 |
Nov 25 | Final exam review | |
Nov 27 | Thanksgiving Break | |
Dec 5 | Final Exam (8-10AM) |
I use the abbreviations OSC for Operating Systems Concepts, 9th ed., by Silberschatz, Galvin, and Gagne, xv6 for the xv6 Commentary, by Vox, Kaashoek, and Morris, and LBoS for The Little Book of Semaphores, by Allen Downey.
In addition to the readings prescribed above, there are also a number of helpful references listed in the Resources section, below.
Homework assignments
Some important advice/information related to the machine problems:
- Remember that all assignment submissions must be typed up (handwritten submissions will not be accepted), and each should include a header specifying your full name, CWID, and site name (main campus or remote site name).
- All students (in live and Internet sections) should submit their work via the assignments section on Blackboard.
- Please see the syllabus for the late submission policy.
Important: do not start on an assignment until it's been officially assigned. The writeups will likely be tweaked beforehand, and you'll probably be wasting your time!
- Kernel organization paper (30 points)
- Assigned: Aug 28; Due: Sep 8
- Concurrent programming, part I (36 points)
- Assigned: Nov 13, Due: Nov 24
- Deadlock (30 points)
- Assigned: Nov 25, Due: Dec 1
Resources
Primary reference materials
- Operating System Concepts textbook support site: http://www.os-book.com/
- The Little Book of Semaphores – fantastic free textbook at http://www.greenteapress.com/semaphores/
- The xv6 Commentary: http://pdos.csail.mit.edu/6.828/2012/xv6/book-rev7.pdf and accompanying source booklet: http://pdos.csail.mit.edu/6.828/2012/xv6/xv6-rev7.pdf
Source code repositories
- The git repository containing examples and template source for assignments is at https://bitbucket.org/michaelee/cs450
- The version of xv6 we'll be using in class is hosted at https://bitbucket.org/michaelee/xv6
Secondary reference and misc. papers
- Tanenbaum-Torvalds Debates: Parts I and II
- PDP11 PAR/PDR breakdown
- "What really happened on Mars?" — information on the Mars Pathfinder mission bug (i.e., priority inversion)
- Dawson Engler et al., Exokernal: An Operating System Architecture for Application-Level Resource Management.
- Jochen Liedtke, Improving IPC by Kernel Design.
- Marshall McKusick and Gregory Ganger, Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem.
- Dennis Ritchie, The UNIX Time-Sharing System.
- Chuck Silvers, UBC: An Efficient Unified I/O and Memory Caching Subsystem for NetBSD.
- ZFS presentation: "ZFS - The Last Word in File Systems" by Jeff Bonwick and Bill Moore, http://opensolaris.org/os/community/zfs/docs/zfs_last.pdf
Simulators / Emulators
- Process scheduling and disk head scheduling simulators (and many
others): http://vip.cs.utsa.edu/simulators/
- Best thing to do is to download the zip files and run locally. Make sure you read through corresponding documentation.
- QEMU manual — we'll be using QEMU to emulate a 32-bit x86 machine to run and debug xv6
- PDP/11 simulator (and others) at the Computer History Simulation Project
(used in previous semesters to simulate Unix v6)
- You'll also need to download the Unix v6 package at http://simh.trailing-edge.com/kits/uv6swre.zip
- You'll need the PDP/11 specific documentation at http://simh.trailing-edge.com/pdf/pdp11_doc.pdf and http://simh.trailing-edge.com/pdf/simh_swre.pdf (the latter contains instructions on booting Unix v6 on the simulator)
Exams and Study Guides
- The IIT final exam schedule
- Past midterms:
- Past finals:
Administrivia
- Course syllabus. Read it thoroughly and refer to it first for any administrative questions (e.g., regarding textbooks, the late policy, exam dates, etc.). If you can't find your answer there, e-mail me.
- Instructor: Michael Lee
- Email: lee@iit.edu
- Office hours by appointment
- Phone: (312) 567-5709