Thomas P. Kelliher
Office phone: 337-6189
Home phone: 931-2946
Send mail to kelliher AT DOMAIN bluebird.goucher.edu
Office hours: MWF 10:30--11:30am. Th 1:00-3:00pm. Other times by
Our main objective is to learn how modern operating systems are designed,
through study of their fundamental pieces and through studying, modifying,
and building upon the Nachos instructional operating system in Unix.
Here are some key features of recent operating systems:
- Symmetric multi-processing (SMP)
- Micro kernel design
- Object oriented systems
- Distributed systems
- Demand paging
- Virtual memory
Two other objectives:
- To understand concurrent processes/threads and how to control that
- To appreciate that all an operating system is, when decomposed, is a
collection of algorithms and data structures.
I expect you to be proficient in C++ and Unix. I prefer not to use class
time to review them. If your knowledge of them is lacking or has waned, I
can suggest a small, no-credit project to develop or refresh your skills.
A. Silberschatz and P. Galvin, Operating Systems Concepts, 5th ed.,
Addison Wesley, 1998. Required.
P. Abrahams and B. Larson, Unix for the Impatient, 2nd ed., Addison
Wesley, 1997. Optional.
S. Lippman, C++ Primer, 2nd ed., Addison Wesley, 1991. Optional.
- Other Resources:
Nachos and other documentation will be made available through links to Web
sites and file repositories on phoenix.
A = [92--100],
A- = [90--92),
B+ = [88--90),
B = [82--88),
B- = [80--82),
Course Point Distribution
The following is tentative. There are 600 total points for the course.
- Assignments --- There will be two written assignments. Each
assignment will be worth 50 points. Late assignments will be accepted
only by prior arrangement.
- Programming project --- The Nachos programming project will be
worth 200 points. It will be due in stages and will be discussed in
- Exams --- There will be two midterms and a final. Each will be
worth 100 points. Tentatively, the midterms will be February 27 and
- Course Handouts:
Most course handouts will be made available once in class. After that, they
may be obtained from the class home page on the World Wide Web (see the
class URL above). Some course handouts will only be distributed through
the class home page.
Attendance of classes, while not required, is quite important. Attendance
and participation are necessary learning components. Please inform me
beforehand if you will be absent. Remember that you are responsible for
making up missed work.
I expect that you will complete reading assignments before class and come
to class prepared to discuss the day's material. If you need to print a
copy of an outline before class, please arrive early so that you don't
cause a disruption at the beginning of class.
Academic dishonesty will not be tolerated. Refer to the Student Handbook.
- Tentative Outline:
- Process concept and synchronization.
- CPU scheduling.
- I/O and Secondary storage.
- Memory management and virtual memory.
- The file system.
- Case study: Linux.
- Case study: Windows NT.
- Other topics.