CS230/330 : Operating Systems (S99)
Instructor
Name: Dave Beazley
Office : Ryerson 257B
Phone : (773) 702-9111
email : beazley@cs.uchicago.edu
Office hours: MWF 10:30 - 11:30 (or whenever my office door is open).
Prerequisites
- CS222 (Computer Architecture)
- CS117 (C/C++)
- Experience with data structures and algorithms.
Textbooks
- Operating System Concepts, 5th Ed., by Silberschatz and Galvin (required).
- The Practice of Programming, by Kernighan and Pike (optional).
We will be covering the first six parts of the Silberschatz book. The Kernighan
and Pike book is good bedtime reading if you have never worked on a large software project
before.
Overview
This course covers concepts that are central to the design and
implementation of modern operating systems. Most of the course
focuses on operating system internals including processes, threads,
memory management, file systems, synchronization, interprocess
communication, and I/O.
A Word About the Class Project
Most of the work in this class will be devoted to a group programming
project in which you will implement a small Unix-like operating system
kernel. Since this is not an introductory CS
course, I will assume a certain level of proficiency with the C
programming language as well as a familiarity with basic data
structures such as linked lists, trees, hash tables, heaps, stacks,
and queues. With that said however, I do not expect you to be an expert
in all of the fine points of C programming and will cover
advanced topics as needed.
The other point I want to emphasize is that you should not
underestimate the amount of time required to complete the class
projects. If you wait
until the last minute to start, you will not finish and you will
fail. On the bright side, your operating system project will only be about
1/10000th the rumored size of Windows 2000.
Grading Structure
- Homework #1 (5%)
- Project 1: Unix shell (20%)
- Project 2: Kernel (50%)
- Midterm (10%)
- Final Exam (15%)
Late assignments are not accepted unless prior arrangements have been
made. If you miss the midterm or final, you will have to take a
makeup oral exam. I do not recommend this option.
Grading Scale
- 90-100 : A
- 80-89 : B
- 70-79 : C
- 60-69 : D
- < 60 : F
Academic Dishonesty
I encourage you to discuss the projects with your
classmates. However, all of the work you hand in must be
your own. Source code will be checked for similiarity.
Turning in identical solutions to assignments and projects will
result in an F for the course.
Where to go for help
Operating systems is traditionally one of the most challenging
computer science courses. Please do not hesistate to come
see me if you have any problems or concerns.