FSU COP 5611 (Spring 2020)
Advanced Operating Systems

Andy Wang (awang@cs.fsu.edu)


[Jan 1] Welcome to COP 5611!

Course Material

Lecture 1 (1/7/2020)
Course Syllabus (Word 2003)
Course Information (PowerPoint 2003)
Course Introduction (PowerPoint 2003)
The UNIX Time-Sharing System by Ritchie and Thompson

Lecture 2 (1/9/2020)
Advanced File Systems (PowerPoint 2003)
A Fast File System for UNIX
UNIX Disk Access Patterns (optional)
A File is Not a File (optional)

Lecture 3 (1/14/2020)
FFS, LFS, and RAID (PowerPoint 2003)
An Implementation of a Log-Structured File System for UNIX
A Case for Redundant Arrays of Inexpensive Disks (RAID) (optional)
Elephant: The File System that Never Forgets (optional)
File System Design for an NFS File Server Appliance (optional)
A Logic of File Systems (optional)

Lecture 4 (1/16/2020)
File System Extensibility (PowerPoint 2003)
File system Development with Stackable Layers
Vnodes: An Architecture for Multiple File System Types in Sun UNIX (optional)
TableFS: Enhancing Metadata Efficiency in the Local File System (optional)
Skylight: A Window on Shingled Disk Operation (optional)
BetrFS: A Right-Optimized Write-Optimized File System (optional)

Lecture 5 (1/21/2020)
F2FS: A New File System for Flash Storage (PowerPoint)
Nova: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories (Slides)
Aerie: Flexible File-System Interfaces to Storage-Class Memory (Slides)
Strata: A Cross Media File System (Slides)

Lecture 6 (1/23/2020)
Caching for File Systems (PowerPoint 2003)
Possible course projects
The Effects of Memory-Rich Environments on File System Microbenchmarks (optional)
My cache or yours? Making storage more exclusive (optional)

Lecture 7 (1/28/2020)
Threads, Events, and Scheduling (Power Point XP)
Lottery Scheduling: Flexible Proportional-Share Resource Management
Why Events Are a Bad Idea (for High-Concurrency Servers) (optional)
Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism (optional)

Interprocess Communications (PowerPoint XP)
Implementing Remote Procedure Calls
Introduction to RPC API (optional)

Lecture 8 (1/30/2020)
Interprocess Communications (continued) (PowerPoint XP)
Opal: A Single Address Space System for 64-bit Architectures
The Expected Lifetime of "Single-Address-Space" Operating Systems (optional)
Anonymous RPC: Low-Latency Protection in a 64-Bit Address Space (optional)

Lecture 9 (2/4/2020)
Exam 1 (covers lectures 1-8; please bring your ID and bluebook)

Lecture 10 (2/6/2020)
Class cancelled

Lecture 11 (2/11/2020)
Project proposal presentations

Lecture 12 (2/13/2020)
Operating System Organization (PowerPoint XP)
On Micro-Kernel Construction by Jochen Liedtke
Why Aren't Operating Systems Getting Faster as Fast as Hardware? by John Ousterhout
Plan 9 from Bell Labs (optional)
Making Paths Explicit in the Scout Operating System (optional)
Amoeba (optional)

Lecture 13 (2/18/2020)
Operating System Organization Continued (PowerPoint XP)
An Overview of the Spring System

Lecture 14 (2/20/2020)
Distributed Operating Systems (PowerPoint XP)
Chapter 1, Distributed Operating Systems by Tanenbuam and Steen (optional)

Lecture 15 (2/25/2020)
Distributed Operating Systems (Part II) (PowerPoint XP)
World Wide Web Cache Consistency
Paxos Made Simple by Lamport
Copysets: Reducing the Frequency of Data Loss in Cloud Storage

Lecture 16 (2/27/2020)
Distributed Operating Systems (Part III) (PowerPoint XP)
The Dangers of Replication and a Solution (optional)
Pastry: Scalable, Decentralized Object Location and Routing for Large-Scale Peer-to-Peer Systems (optional)
The Hash History Approach for Reconiling Mutual Inconsistency (optional)
Design and Evaluation of a Continuous Consistency Model for Replicated Services (optional)

Lecture 17 (3/3/2020)
IPC in Distributed Operating Systems (PowerPoint XP)
Time, Clocks, and the Ordering of Events in a Distributed System by Leslie Lamport
Lightweight Causal and Atomic Group Multicast
Mirage: A Kernel Implementation of Distributed Shared Memory on a Network of Personal Computers (optional)

Lecture 18 (3/5/2020)
Distributed File Systems (PowerPoint XP)
An Overview of the Andrew File System (optional)

Lecture 19 (3/10/2020)
Exam 2 (covers lectures 11-16; please bring your ID and bluebook)

Lecture 20 (3/12/2020)
Distributed File Systems II (PowerPoint XP)
Serverless Network File Systems

Lecture 21 (3/17/2020)
Spring break;

Lecture 22 (3/19/2020)
Spring break;

Lecture 23 (3/24/2020)
The Google File System (PowerPoint XP)
OceanStore: An Architecture for Global-Scale Persistent Storage (PowerPoint XP)

Lecture 24 (3/26/2020)
Facebook's Photo Storage (PDF)
SPOCA (Stateless, Proportional, Optimally-consistent Addressing Algorithm) (PDF)

Lecture 25 (3/31/2020)
Fast Crash Recovery in RamCloud (PowerPoint)
CORFU: A Shared Log Design for Flash Clusters (PowerPoint)

Lecture 26 (4/2/2020)
Operating System Security (PowerPoint XP)
Crisis and Aftermath
When Cryptography Meets Storage (optional)
Cashtags: Protecting the Input and Display of Sensitive Data (optional)

Lecture 27 (4/7/2020)
Operating System Security (Part II) (PowerPoint XP)
The Evolution of the Kerberos Authentication Service
Internet Privacy Enhanced Mail

Lecture 28 (4/9/2020)
Automated Worm Fingerprinting (PowerPoint XP)

Lecture 29 (4/14/2020)
Cashtags: Protecting the Input and Display of Senstive Data (PPTX)
Bitcoin: A Peer-to-Peer Electronic Cash System (PPTX)

Lecture 30 (4/16/2020)
Reliability (PowerPoint XP)
Enhancing Availability and Security Through Failure Oblivious Computing (PowerPoint)
Rx: Treating Bugs as Allergies--A Safe Method to Survive Software Failures (optional)

Lecture 31 (4/21/2020)
Project Presentations

Lecture 32 (4/23/2020)
Project Presentations

Useful Resources

Recommended Reading
HotRing: A Hotspot-aware In-Memory Key-value Store
Consistency-aware Durability
PCStream: Automatic Stream Allocation Using Program Contexts
Write-Optimized Dynamic Hashing for Persistent Memory
Reaping the Performance of Fast NVM Storage with uDepot
Optimizing Systems for Byte-Addressable NVM by Reducing Bit Flipping
Bitcoin: A Peer-to-Peer Electronic Cash System
The Landscape of Parallel Computing Research: A View from Berkeley
Above the Clouds: A Berkeley View of Cloud Computing
End-to-End Arguments in System Design
The Chubby Lock Service for Loosely-Coupled Distributed Systems
BigTable: A Distributed Storage System for Structured Data
MapReduce: Simplified Data Processing on Large Clusters
Spark: Cluster Computing with Working Sets
Operating System Support for Database Management
Secure Programming for Linux and UNIX HOWTO
The Tanenbaum-Torvalds Debate
The Cathedral and the Bazaar
An Evaluation of the Ninth SOSP Submission
Some Reflections on Innovation and Invention

Andrew Tanenbaum and Maarten van Steen, Distributed Systems Principles and Paradigms
Mukesh Singhal and Niranjan Shivaratri, Advanced Concepts in Operating Systems
Tanenbaum, Modern Operating Systems (background)
Silberschatz, Galvin, Gagne, Operating System Concepts (background)
Gary Nutt, Operating Systems: A Modern Perspective (background)
Gary Nutt, Kernel Projects for Linux (background)
Kernighan, Ritchie, The C Programming Language (background)
Maxwell, Linux Core Kernel Commentary (background)
Corbet, Rubini, and Kroah-Hartman, Linux Device Drivers
Lions, John, Lions' Commentary on UNIX: With Source Code

On-line Resources

Last modified on: August 2, 2018