CS 3210 Operating System Design – Quick Intro

Spring 2003, TuTh 1:35-2:25

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 12:30-1:30 and by appointment

TAs

        Jiantao Kong jiantao@cc.gatech.edu

                Office Hours/Location: M 7:30-8:30 pm Th 5:30-6:30 pm CCB 225E

        Tak Lok Hong taklh@cc.gatech.edu

                Office Hours/Location: Monday/Wednesday 12-1pm CoC Commons

        Ilya Bagrak (Stealth TA) reason@cc.gatech.edu

                Office Hours/Location: floating

 

Weekly Help Session: Mon 6-7pm CCB 17

 

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

          Syllabus

 

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 (26 April 2003)

  • 45% Exams (3 – 15%, 15%, 15%)
  • 45% Projects (5 – 5%, 10%, 10%, 10%, 10%)
  • 5% Homeworks (1)
  • 5% Notes / Participation / Discretionary

 

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).

 

Teams

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: 1:30 pm (class time) Tuesday 28 January 2003

       

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 7-8:30 pm (CCB 17)

·        Old Exam (pdf) (doc)

·        Study Guide

·        Solutions

          Exam 2 – Wednesday 26 March 7-8:30 pm (CCB 17)

·        Old Exam

·        Study Guide

          Final Exam – Period 2: Monday 28 April 11:30-2:20 pm (CCB 17)

·        Old Exam

·        Study Guide

 

Notes

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.

 

Syllabus

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

  • Team signups, photos
  • Slides (ppt) (html)

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

  • Homework 1 IN
  • Slides (ppt) (html)

BC Ch 4

Th 30 Jan

Kernel Synchronization

  • Slides COMING!

BC Ch 5

Tu 4 Feb

Timing Measurements

BC Ch 6

Th 6 Feb

Memory Management

  • Overview, Page Allocator
  • Program 1 IN
  • Slides (ppt) (html)

BC Ch 7

Tu 11 Feb

Memory Management Continued

  • Slab Allocator, vmalloc
  • Slides (ppt) (html)

BC Ch 8

W 12 Feb

Exam 1 – CCB 17 7-8:30 pm

  • Closed-book, short-answer
  • 10 questions, 90 minutes
  • Intro, Booting, Init
  • Chapters 2-7, 9
  • Old Exam, Study Guide

 

Th 13 Feb

Process Address Space

  • Program 2 IN
  • Slides (ppt)(html)

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

  • Slides (ppt) (html)

BC Ch 11

Th 27 Mar

Accessing Files

BC Ch 15

 

Enjoy the semester and good luck!