The goal 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 difficult and time-consuming programming project (GeekOS).
You are provided with the source code (a few thousand 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 in various ways:
signals, semaphores, cpu scheduling,
memory paging, file system, etc.
The x86 platform is simulated by QEMU.
The programming environment is Gnu/Linux.
A. Udaya Shankar
Email: firstname.lastname@example.org (put "412" in the subject)
Office: AVW 4141
Office hours: TuTh 1:00-2:30 but easily extendable to 3:30pm (tell me)
Kelsey Fulton (grad), Andrew Putlock, Brian Oluwo, Andrew Wang
Project 5C: 13 days. Due May 10
(Friday May 11 is reading day)
One late submission:
One project can be turned in after the weekend
(when due Friday, it can be turned in on Monday).
The best way to use this is to submit both a regular submission
and a late submission for every project.
Then at the end you can choose which project (if any) to apply it to.
Tell me before the add/drop deadline
if you have a problem with the date of exam 1 or exam 2.
Exams 55% (exam 1: 15%; exam 2: 15%; final: 25%)
Class participation (including Piazza): 2%
Participation means asking good questions and/or answering questions well.
If you are doing poorly and I don't see you engaged with the material,
you won't get these points.
Typically this makes a difference only if you're just below a cutoff.
The above percentages may shift slightly (at most ± 2% ).
Regrade requests must be submitted
within a week of the project grade being posted
or the exam being returned.
After that, they won't be processed.
Texts / slides
You can choose from two texts.
For each topic, I'll identify relevant sections in both texts.
Operating System Concepts, Silberschatz, Galvin and Gagne, Wiley.
6th edition or later.
(OSPP) Operating Systems: Principles and Practice,
Thomas Anderson, Michael Dahlin.
OSC is gentle and fluffy.
OSC 6th edition is available pretty much for free.
If you're willing to spend more, OSPP is my choice:
it is clearly better than OSC, more concrete and precise.
OSPP is less expensive than recent editions of OSC.
Consider each programming assignment to be a take-home exam.
Do not expose your source code to others.
Do not leave it potentially accessible to others,
e.g., unlocked unattended laptop, publicly accessible websites,
unsecured servers, unsecure communications.
Do not look at another's source code.
This applies to code from online searches,
e.g., Sourceforge, Stackoverflow, Google.
Interaction via course discussion forum is permitted.
Discussion of problems and code solutions is permitted as long as
you do not write down code during your discussion
and you wait at least 30 minutes after the end of the discussion
before you write code based on the discussion.