CS 4210 Advanced Operating Systems
Spring 2004, MWF 2:05-2:55PM, CCB 102
Basic Information:
- Instructor: Yannis
Smaragdakis, CCB 215, 404-385 1491
yannis@cc.gatech.edu
Office Hours: M,W 3:00-4:00
Teaching Assistant: David
Fisher
dfisher@cc.gatech.edu
Office Hours: Tu, Th 1:00-2:00
- 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 Photos
Lectures (updated as the semester progresses):
- Mon Jan 5: Introduction, Silberschatz
and Galvin Chapter 4 (review)
- Wed Jan 7: Birrell
"An Introduction to Programming with Threads"
- Fri Jan 9: Birrell, continued
- Mon Jan 12: Birrell, continued, HW1 given
out
- Wed Jan 14: Monitor style programming examples
- Fri Jan 16: Monitor style programming example + Thread design
patterns (Lewis&Berg Ch. 13, Nichols, et al. Ch. 2)
- Wed Jan 21: Implementation of Concurrency and Synchronization
(Lewis&Berg Ch. 5, 6)
- Fri Jan 23: Implementation of Concurrency and Synchronization
continued. Project 1 given out
- Mon Jan 26: Quick Intro to Pthreads, begin kernel thread
discussion
- Wed Jan 28: Kernel thread implementation (Eykholt et al. paper on
Multithreading the SunOS kernel)
- Fri Jan 30: End kernel thread discussion, begin user-level thread
library implementation discussion (Stein and Shah "lightweight
threads" paper)
- Mon Feb 2: Stein and Shah "lightweight threads" paper
- Wed Feb 4: Sample exam discussion and first-class
user-level threads paper
- Fri Feb 6: Exam 1
- Mon Feb 9: Exam 1 discussion
- Wed Feb 11: High-level synchronization mechanisms: monitors and
serializers
- Fri Feb 13: High-level synchronization mechanisms: serializers
and path expressions. HW 2 given out
- Mon Feb 16: Performance of Spinlock Alternatives for SMPs
(Anderson's paper)
- Wed Feb 18: Spinlocks for SMPs continued
- Fri Feb 20: Webserver Architecture ("Flash:
an Efficient and Portable Web Server", by Pai et al). See also the talk
slides.
- Mon Feb 23: Webservers continued
- Wed Feb 25: Discussion of IPC, RPC. Beginning of discussion of
User-level IPC for SMPs
- Fri Feb 27: User-level IPC for SMPs (Bershad et al. paper)
- Mon Mar 1: Micro-kernels (Liedtke's "On
micro-kernel construction"). HW3 and Project 2 given out
- Wed Mar 3: Project discussion, micro-kernels coninued
- Fri Mar 5: Caching discussion (processor caches) and micro-kernel
wrap-up
- Mon Mar 15: Fast IPC/doors ("The
Spring Nucleus, a Micro-kernel for Objects")
- Wed Mar 17: Guest lecture by Doug Lea
- Fri Mar 19: Exam 2 preparation, HW3 solution discussion
- Mon Mar 22: Exam 2
- Wed Mar 24: Exam 2 discussion
- Fri Mar 26: Distributed computing discussion, "A
Note on Distributed Computing" by Waldo, Wyant, Wollrath, Kendall
- Mon Mar 29: Remote Procedure Call middleware mechanisms
- Wed Mar 31: Sun RPC. Project 3 given
out
- Fri Apr 2: Project 3 discussion
- Mon Apr 5: Distributed File Systems
- Wed Apr 7: Distributed File Systems, leases, case studies
(Tanenbaum/Van Steen Ch. 10)
- Fri Apr 9: The Sprite file system
(recommended paper: Caching
in the Sprite Distributed File System by Nelson et al.)
- Mon Apr 12: Distributed Shared Memory systems (Tanenbaum/Van
Steen Ch. 6)
- Wed Apr 14: DSMs and memory consistency models. HW4
given out
- Fri Apr 16: Memory consistency models + examples
- Mon Apr 19: Buffer overrun attacks and ways to counter them, Cowan et al.
Stackguard paper
- Wed Apr 21: Buffer overrun continued
- Fri Apr 23: Exokernels discussion, semester wrap-up
Pointers to Technical Information:
- 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
- HTTP, Web Servers, and more:
- Pthreads Resources:
Additional Information: