CS 3210 Operating System Design –
Quick Intro
Spring 2003, TuTh
College of Computing Building
(CCB) 17
Instructor
Phillip W. Hutto pwh@cc.gatech.edu CCB 123
Note: I hold office hours in the
Systems Studio CCB 201 and
I’m only on campus Tuesday and
Thursday.
cell 404.423.8878 - home 404.892.7444 -
emory 404.727.5120
Office Hours: TuTh
TAs
Jiantao Kong jiantao@cc.gatech.edu
Office Hours/Location: M
Tak Lok Hong taklh@cc.gatech.edu
Office
Hours/Location: Monday/Wednesday
Ilya Bagrak (Stealth TA) reason@cc.gatech.edu
Office Hours/Location: floating
Weekly Help Session: Mon
Web: www.cc.gatech.edu/classes/AY2003/cs3210_spring
News: news://news.cc.gatech.edu/git.cc.class.cs3210
Swiki: swiki.cc.gatech.edu:8080/cs3210
Quick Links
Programs
Homeworks
Prerequisites
CS 2200
(required!) Familiarity with general OS concepts at the level of the Dinosaur
Book. Knowledge of Linux is not required but helpful. Sys admin experience is
helpful.
Objectives
Deep
understanding of OS principles by detailed study of a modern OS kernel
(internals). Along the way you will learn a fair amount about Linux/Unix
programming interfaces (externals).
Texts
NOTE: Newly published 2nd edition covering 2.4
kernel in detail!
Understanding the Linux Kernel:
From I/O Ports to Process Management 2e
Bovet & Cesati (BC), O’Reilly December 2002 816 pages
ISBN 0596002130 (about $35)
Linux Device Drivers 2e
Rubini and Corbet (RC), O’Reilly June 2001 592 pages
ISBN 0596000081 (about $25)
Available Online: http://www.xml.com/ldd/chapter/book/
Resources
I will
include and maintain a detailed list of related texts and other online
resources that you may consider supplemental material for this class on the
website.
Running
Linux 4e
Welsh, Kaurman, Dalheimer, Dawson,
O’Reilly December 2003 750 pages
ISBN 0596002726
IA-64
Linux Kernel: Design and Implementation
Mosberger, Eranian, Prentice-Hall
January 2002 560 pages
Operating
Systems Concepts 6e
Silbershatz, Gavin, Gagne, Wiley &
Sons June 2001 912 pages
Modern
Operating Systems 2e
Tannenbaum, Prentice-Hall February 2001
976 pages
The
Design and Implementation of the 4.4 BSD Operating System 2e
McKusik, Bostic, Karels, Quaterman,
Addison-Wesley April 1996
Solaris
Internals: Core Kernel Architecture
Mauro, McDougall, Prentice-Hall October
2000 704 pages
Inside
Microsoft Windows 2000 3e
Solomon, Russinovich, Microsoft Press
September 2000
Accounts
You will
need a CoC account. I will need to sign the authorization form if you do not
already have one. Get one now! You will also need to use your campus (acme)
account to access the campus wireless network (LAWN).
www.cc.gatech.edu/cns/faq/account.user.html
Grading
5% Notes (class scribe, posted on swiki)
15% Homeworks (7 – one every other week,
~2% each)
Note: If attention and attendance is lagging in lecture, I may
offer some
unannounced in-class quizzes in
lieu of homeworks.
40% Exams (3 – 12.5%, 12.5%, 15%)
40% Projects (7 – one every other week,
weighted to difficulty)
Revised Grading (
Exam and
class grades are curved. That means grades are calculated relative to the
performance of other students. Generally I start with a standard deviation
about the mean as the B range. One standard deviation below is C, one above is
A, etc. I then adjust the cut-offs to reflect my expectations of your
performance. When calculating final course grades I use raw numerical values
(not a numerical score corresponding to your letter grade) and then curve as
usual.
Team Projects
Teams of three
this term. You will have the same team all semester under normal circumstances.
Teams will schedule project demonstrations with TAs. Do a simple code
walk-through, run project, answer prepared and spontaneous questions from TAs. All
team members must be able to answer all questions equally! Identify partners by class next Thursday (9 January) or I will assign
you to a team arbitrarily. All team members will receive the same grade.
You may submit evaluations of fellow team member’s participation at the end of
the semester and I will take these into account when assigning final grades. If
a team member drops or stops participating, I will split or merge teams as
necessary. Audit and pass-fail students should form their own teams (without
L/G members).
All team
members will receive the same grade. You may submit evaluations of fellow team
member’s participation at the end of the semester and I will take these into
account when assigning final grades. If a team member drops or stops
participating, I will split or merge teams as necessary. Audit and pass-fail
students should form their own teams (without L/G members). We will expect a
little more from teams of four, a little less from teams of two. For example, a
partially working solution will receive a higher grade for a team of two.
Homeworks
Homework 1 –
OS/Kernel Intro, Booting/Kernel Init, System Calls/Modules/Proc
DUE:
Programs
Program 1 – Hello,
iPAQ!
DUE: Thursday 6 February (schedule demo Th-Sun)
Program 2 – Beam
Me Up Scotty! (DRAFT)
DUE: Tuesday 18 February (schedule demo M-W)
Program 3 - Scheduler
Program 4 – File system I
Program 5 – File system II
Exams
Closed-book,
in the evening (outside of class-time). I schedule evening exams to conserve
lectures and to give you more time on the exam. Make-ups will be scheduled for
students who have conflicts with the evening times. Short answer under time
pressure. Exams emphasize mid-level concepts and include some detail questions.
Study guides and old exams with solutions will be made available. Exams will
emphasize most recent material (~80%). Exam grades (and course grades) strongly
correlate with how well people read the text!
Exam
1 – Wednesday 12 February
Exam
2 – Wednesday 26 March
·
Old Exam
Final
Exam – Period 2: Monday 28 April
·
Old
Exam
Each
student will be responsible for taking detailed class notes twice during the semester and posting
to the class swiki. We have 30 lectures and about 60 students. TAs will review
and grade notes. Post these within one week of the lecture. Your notes must be
well-formatted, detailed and accurate. Simply transcribe whatever happens in
class on your assigned day (include informational announcements, etc.).
Equipment / Lab Setup
Each team
will be assigned an iPAQ and associated equipment for use during the semester.
We have an elaborate development environment setup here at Tech. Adventurous
students with Linux systems may wish to setup their own home development
environment.
Photos
I will
take individual photos of students Thursday 9 January to help me learn names
and faces. I will place these on the website unless you want me to keep your
photo private.
We will
cover Bovet & Cesati (BC) roughly in order with a few additional topics. Supplemental
reading will be taken from Rubini & Corbet (RC) and handouts. (WARNING:
Chapter numbers are slightly different in the first and second edition of BC). Optional,
suggested readings are in italics. Here is a sketch of the first four weeks:
|
Tu 7 Jan |
Course
Intro |
BC
Appendix C RC Ch
16 |
|
Th 9 Jan |
OS, Kernel
Intro |
BC Ch
1, RC Ch 1 |
|
Tu 14 Jan |
Booting,
Kernel Init
|
BC
Appendix A Running Linux Ch 5 |
|
Th 16 Jan |
System
Calls, Modules, /proc |
BC Ch 9,
Appendix B RC Chs
2, 11 |
|
Tu 21 Jan |
Memory
Addressing
|
BC Ch
2, RC Ch 13 |
|
Th 23 Jan |
Processes |
BC Ch 3 |
|
Tu 28
Jan |
Interrupts,
Exceptions |
BC Ch 4 |
|
Th 30
Jan |
Kernel
Synchronization
|
BC Ch 5 |
|
Tu 4
Feb |
Timing
Measurements
|
BC Ch 6 |
|
Th 6
Feb |
Memory
Management
|
BC Ch 7 |
|
Tu 11
Feb |
Memory
Management Continued
|
BC Ch 8 |
|
W 12
Feb |
Exam 1 – CCB 17
|
|
|
Th 13
Feb |
Process
Address Space
|
BC Ch 8 |
|
Tu 18
Feb |
NO
CLASS – instructor illness |
|
|
Th 20
Feb |
Signals
I |
BC Ch 10 |
|
Tu 25
Feb |
Signals
II |
BC Ch
10 |
|
Th 27
Feb |
Scheduler
|
BC Ch
11 |
|
Th 27
Mar |
Accessing
Files |
BC Ch
15 |
Enjoy the semester
and good luck!