Princeton University
Computer Science Dept.

Computer Science 518
Advanced Operating Systems

Fall 2005


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: 302
Makeups: Friday, 10:00-11:00, Room TBA

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 is 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 2005
Su Mo Tu We Th Fr Sa
             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


15 - Organizational meeting
20 - Vivek Pai
Flash & Harvest
22 - pres #1 - Vivek presents DeBox
27 - pres #2 - Yi presents CDN
29 - (bumped)
NSF Grand Challenges Workshop

 
    October 2005
Su Mo Tu We Th Fr Sa
                   1
 2  3  4  5  6  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 - pres #3 - Chris presents ESX
06 - pres #4 - Janet presents Lottery
07 - pres #5 - Martin presents Resource
Makeup lecture
11 - pres #6 - Chang presents LARD
13 - pres #7 - Wei presents DSM
18 - pres #8 - Spencer presents XFS
20 - pres #9 - Xiaojuan presents GMS
25 -
pres #10 - Stephen presents L4
27 - pres #11 - Janet presents CFS

 

    November 2005
Su Mo Tu We Th Fr Sa
       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

01 -
Fall Recess
03 -
Fall Recess
08 -
Project proposals
10 -
pres #12 - Martin presents UVM
15 -
pres #13 - Stephen presents IO-Lite
17 -
pres #14 - Yi presents SEDA
22 -
pres #15 - Chang presents kqueue
24 -
Thanksgiving recess
29 -
pres #16 - Chris presents Energy


    December 2005
Su Mo Tu We Th Fr Sa
             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


01 -
pres #17 - Xiaojuan presents Xen
02 -
pres #18 - Will presents Spin
Makeup lecture
06 -
pres #19 - Wei presents Metal
08 -
pres #20 - Spencer presents soft-updates
09 -
pres #21 - Will presents Byzantine
Makeup lecture
13 -
(bumped)
WORLDS workshop
15 -
(bumped)
FAST conference



   January 2006
 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


10 - Project presentations
12 -
Project presentations
17 - Project presentations
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

Debox & DTrace - kernel debugging

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 - kernel resource management

SEDA & Scheduler Activations - managing parallelism

Soft-Updates & LFS - file system restructuring

SPIN & VINO - extensible kernels

UVM & Mach - virtual memory restructuring

Xen & Denali - virtualization, paravirtualization

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.