Princeton University
Computer Science Dept.

Computer Science 518
Advanced Operating Systems

Fall 2004


Course Summary

Survey of operating systems covering: early systems, virtual memory, protection, synchronization, process management, scheduling, input/output, file systems, virtual machines, performance analysis, software engineering, user interfaces, distributed systems, networks, current operating systems, case studies. Survey of research papers from classic literature through contemporary research. Prerequisite: COS 318 or equivalent.

Administrative Information

Lectures: TTh 1:30-2:50, Room: 102

Professor: Vivek Pai
Office: 322 CS Building
Phone: 258-2086
Office Hours: TTh 3:00-4:00, or by appointment
Email: vivek@cs.princeton.edu


Graduate Coordinator: Melissa Lawson

Office: 310 CS Building
Phone: 258-5387
Email: mml@cs.princeton.edu



Grading

This course is a regular (not seminar) course, and the grading will consist of four components:
Presentations:
Each student is expected to present one or more papers during the course of the semester. These papers are drawn from the reading list of the course, and are not expected to be the students original work.
Preparation:
All students should read the papers in advance of the class and send (via e-mail) a half-page typed discussion of each paper. This is not a book report -- please discuss strengths, weaknesses, and possible ways of improving the paper.
Project:
Roughly beginning the sixth week of the course, students are expected to present short proposals for projects. The projects may be proposed independently, or may be drawn from a list of suggested topics. Projects may be done in pairs, with the approval of the instructor. Note that final project presentations will take place during reading period. The final material of the course a short (8-10 page) paper covering the project.
Participation:
All students will participate by reviewing each speaker and writing observations as each talk progresses in an evaluation form
Grading:
The grade weighting for the semester will be:


Discussions:  20%
Presentation: 20%
Critiques: 20%
Project:  40%
These weights are subject to minor adjustments.

  
   September 2004
 S  M Tu  W Th  F  S
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

 
09 - Organizational meeting
14 - Vivek Pai
Flash & Harvest
16 - pres #1 - discussing CDN and CHash
21 - pres #2 - discussing L4 and exokernel
23 - pres #3 - Byzantine and RAID
28 - (bumped)
PC meeting
30 -
(bumped)
PlanetLab meeting

 
    October 2004
 S  M Tu  W Th  F  S
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31


05 - pres #4 - Aquinas presents ESX and DISCO
07 - pres #5 - Lottery and Clock
12 - pres #6 - Seshadri presents Metal
14 - pres #7 - Soft-updates and LFS
19 - pres #8 - SEDA and Scheduler Activations
21 - pres #9 - Dtrace and Debox
26 - Fall recess
28 - Fall recess

 

 
    November 2004
 S  M Tu  W Th  F  S
    1  2  3  4  5  6
 7  8  9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

02 - project proposals
04 - pres #10 - XFS & FFS
09 - pres #11 - kqueue & select
11 - pres #12 - DSM & RPC, Haakon Larsen
16 - (bumped)
HotNets workshop
18 - pres #13 - LARD & Network Dispatcher, Seshadri
23 - pres #14 - GMS & LOCUS, Aquinas
25 - Thanksgiving
30 - pres #15 - Resource & Scout, Amit Agarwal


    December 2004
 S  M Tu  W Th  F  S
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

02 - pres #16 - Xen and Denali, Mike
07 - (bumped)
OSDI conference
10 - pres #17 - SPIN & VINO, Aquinas



    January 2005
 S  M Tu  W Th  F  S
                   1
 2  3  4  5  6  7  8
 9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31


04 - Project presentations
06 - Project presentations
07 -
Project presentations
11 - Dean's Date
 



 

Papers (alphabetical order by nickname of recent paper)

Byzantine & RAID - making systems fault tolerant

CFS & NFS - distributed filesystems, LAN and WAN

CDN & Chash - content distribution networks and consistent hashing

DSM & RPC - distributed shared memory and remote procedure calls

DTrace & DeBox

Energy & DVS - energy efficiency and dynamic voltage scaling

ESX & DISCO - virtual machines

Flash & Harvest - Fast servers - web and proxy

GMS & LOCUS - Global memory

IO-Lite & fbufs - buffering systems inside the OS

kqueue & select - fast event notification systems

L4 & Exokernel - stripped down kernels

LARD & Network Dispatcher - cluster request distribution

Lottery & Clock - scheduling

Metal & Synthesis - error detection, dynamic code generation

resource & scout

SEDA & Scheduler Activations - managing parallelism

Soft-Updates & LFS - file system restructuring

SPIN & VINO

UVM & Mach - virtual memory restructuring

Xen & Denali

XFS & FFS - advanced file systems





 

Possible Project Ideas

Filesystem stress tool - can you characterize what filesystems are good for what types of workloads?

Worldwide timing - clock skew becomes an issue when running distributed applications. Design a system to provide a more coherent global clock.

Scalability - test some aspect of OS scalability - threads, zero copy, virtual memory design, etc. Fix it if possible.

Interface - the select system call does not like disk file descriptors. Make it useful by having it begin prefetching when presented with a disk fd.

Anomaly detection - by observing the behaviors of large numbers of somewhat similar programs, can you determine when a program has gone out of control?

geolocation - can you tell where someone is coming from, and redirect them to the closest instance of a service?

Page faults - can you lay out code or data to reduce fault rates? Does it matter?

Virtualization costs - can you reduce the overhead of virtualization by making changes at the program level?

Do class-based resource management - see Marc Fiuczynski's project 3 for a more complete description.