Some Piazza postings will be duplicated here:
A. Udaya Shankar
Office hours: TuTh 2:00-3:00 (AVW 4141)
but easily expandable (email for an appt).
||Kevin Engel (email@example.com).
Office hours: Thu 5-6 (CSIC 3107).
Office hours: Wed 3-4 (CSIC 3107).
CSIC 2107. TuTh 12:30-1:45pm
CSIC 1121. MW 1:00-3:00pm
This course is a hands-on introduction to operating systems,
including topics in:
multiprogramming, communication and synchronization,
memory management, IO subsystems, and resource scheduling polices.
The objective is an in-depth understanding of how an operating system
manages resources in a computer and provides programmers with a
machine and device independent interface.
There is a significant and time-consuming programming project (GeekOS).
You are provided with the source code (about 3000 lines of C and some assembly)
of a "Unix-style" skeleton operating system for a PC-like x86 platform.
You have to understand a large part of this code
and augment it with various OS functionality:
interprocess signals, semaphores, cpu scheduling,
memory paging, file system, etc.
The x86 platform is simulated by QEMU.
The programming environment is Gnu/Linux.
Topics in general
- Introduction to operating systems
- Overview of GeekOS
- Processes/threads: implementation, protection, scheduling
- Concurrent processes: reasoning, synchronization, communication
- Deadlocks: prevention, avoidance, detection
- Memory management
- File systems: interface, implementation
- I/O systems (disks, etc.)
- Other topics (e.g, security, networking, etc.)
Operating System Concepts, 6th edition or later,
Siberschatz, Galvin and Gagne, Wiley.
Gentle and fluffy ...
No need for very recent version.
Editions 6 and some later ones are inexpensive (perhaps free).
Operating Systems: Principles and Practice,
Thomas Anderson, Michael Dahlin.
Concrete and detailed.
Much more precise than book 1 but not as gentle.
Recent book, so no inexpensive old editions.
Course overview slides
OS Process slides
Implementing Locks, Conditions, Semaphores slides
Memory management slides
For more on queueing, see
On concurrent programming
Your letter grade is based non-linearly on exams and projects
Exam 1: approx 15% (date: TBD)
Exam 2: approx 15% (date: TBD)
Exam 3: approx 20% (date: official final exam)
Projects: approx 50%
"Approx" means +/− 5%
You will get a letter grade (D, F, C-)
for the projects and a letter grade (D, F, C-) for the exams.
If you get D or F in either, then that is your course grade.
If you get C- or higher in both,
your course grade will be based on both and will be C- or higher.
I'll consider class participation (by at most 4%)
if you are close to a cutoff.
Missed exams and submissions
Each project has a regular deadline and one or two late deadlines,
which will be fixed soon after the project is assigned.
No submissions after the last late deadline
(barring medical/family emergency).
If you miss an exam or project deadline
due to medical or family emergency, please see me.
If it's due to illness,
please bring documentation signed by a health care professional.
If you miss an exam, I'll give you a makeup or move its weight
to a later exam (my choice).
Any regrade request must be submitted
within a week of the project grade being posted
or the exam being returned.