CS 4210 Advanced Operating Systems
Summer 2005, MWF 9:20-10:30AM, CCB 102
Basic Information:
- Instructor:
Ada
Gavrilovska, CCB 222, 404 894 0387
ada@cc
Office Hours: M: 10:30-11:30, W: 1:00-2:00, or by appointment
Teaching Assistant:
Gagan Goel
gagan.goel@cc
Office Hours: T: 3:00-4:00, Th: 2:30-3:30, CoC Commons Area
- Suggested Textbooks:
- Operating
Systems Concepts, Silberschatz, Galvin, and Gagne, Sixth Edition, John
Wiley and Sons
- Multithreaded Programming with Pthreads, Lewis and Berg, Prentice
Hall
- Pthreads Programming Nichols, Buttlar, Farrell, O'Reilly
- Distributed
Systems, Tanenbaum and Van Steen, Prentice Hall
- Syllabus
- Class Newsgroup:
news://news.cc.gatech.edu/git.cc.class.cs4210
- Assignments:
Lectures (updated as the semester progresses):
- Mon May 16: Introduction, Silberschatz
and Galvin Chapter 4 (review)
- Wed May 18: Birrell
"An Introduction to Programming with Threads"
- Fri May 20: Birrell, continued
- Mon May 23: Implementation of Concurrency and Synchronization (Lewis&Berg Ch.5 and 6)
- Wed May 25: Concurrency and Scheduling, continued
Thread Design Patterns (Lewis&Berg Ch.13, Nichols, et al. Ch. 2).
- Fri May 27: Intro to Pthreads (Thread creation example, Producer/Consumer example)
- Mon May 30: Memorial Day - no class
- Wed Jun 1: Kernel thread implementation (Eykholt et al. paper on Multithreading the SunOS kernel)
- Fri June 3: --
- Mon Jun 6: User-level thread
library implementation discussion (Stein and Shah "lightweight threads" paper).
- Wed Jun 8: First-class
user-level threads paper
- Fri Jun 10: High-level synchronization mechanisms: serializers
and path expressions. (Bloom's SOSP paper).
- Mon Jun 13: --
- Wed Jun 15: Synchronization constructs continued: Serializers, Path Expressions, RWLocks, and Semaphores
- Fri Jun 17: Performance of Spinlock Alternatives for SMPs
(Anderson's paper).
Project 1 DUE at midnight
- Mon Jun 20: Anderson paper, continued. Midterm Review.
Homework 1 DUE by class time
- Wed Jun 22: MIDTERM.
- Fri Jun 24: Midterm discussion.
Webserver Architecture discussion ("Flash: an Efficient and Portable Web Server", by Pai et al). See also the talk
slides.
- Mon Jun 27: Webserver Architecture continued. Apache model (Tanenbaum and Van Steen 11.1).
- Wed Jun 29: User-level IPC for SMPs (Bershad et al. paper).
- Fri Jul 1: Implementing Remote Procedure Calls.
- Mon Jul 4: Independence Day - no class
- Wed Jul 6: Sun RPC tutorial (handouts given in class). discuss IPC/RPC.
- Fri Jul 8: Advances in RPC (asynchronous RPC, Java RMI); A Note on Distributed Computing by Waldo, Wyant, Wollrath, Kendall.
A Distributed Object Model for the Java System" - Java RMI paper
- Mon Jul 11: Micro-kernels (Liedtke's "On
micro-kernel construction").
- Wed Jul 13: micro-kernel wrap-up. microkernels vs. extensible OS.
Reference papers: Exokernel, SPIN, Synthetix
- Fri Jul 15: Fast IPC/doors ("The
Spring Nucleus, a Micro-kernel for Objects")
Reference paper: Spring Overview
- Mon Jul 18: Distributed File Systems (Tanenbaum Ch. 10 (2002 edition), Silberschatz and Galvin Ch. 17).
- Wed Jul 20: Distributed File Systems (continued)
- Fri Jul 22: Distributed File Systems case studies: The Sprite file system (recommended paper: Caching in the Sprite Distributed File System by Nelson et al.)
- Mon Jul 25: Distributed Shared Memory (Tanenbaum, Ch. 6.2)
Reference paper: Distributed Shared Memory: Concepts and Systems
- Wed Jul 27: DSMs and memory consistency models
- Fri Jul 29: Semester wrap-up. Review.
- Wed. Aug 2: FINAL EXAM, 2:50-5:40pm, Rm CoC 102
Pointers to Technical Information:
- Pthreads Resources:
- HTTP, Web Servers, and more:
- JPEG manipulation:
- www.ijg.org
- Source
code library for JPEG manipulation (follow installation instructions
to compile it)
- Client
program using the library to create low-quality JPEG images from
regular JPEGs. Untar together with the library and follow the
instructions in README.lowres
Additional Information:
- Old Midterms:
- Old Finals:
- Some previous offerings of this course:
- Previous offerings of the quarter version of this course:
- See the course
proposal for what this class is supposed to look like.