Advanced Operating Systems Fall 2022

(Piazza course site). (Review template, In-class presentations,) Note that numbered entries in the non-required reading section are highly encouraged.

Date Topic Zoom Assignments Reading Non-required Reading
Mon 08/22 Course Intro
[lecture]

HW 1 out

1) How (and How Not) to Write a Good Systems Paper (Levin and Redell, SIGOPS OSR, 1983)
2) On Being the Right Size (Haldane, 1928)

You and Your Research(Hamming 1986)

Wed 08/24 Correctness
[lecture]

HW1 in-class quiz

1) The UNIX Timesharing System (Ritchie and Thompson, SOSP, 1974) other notes
2) Medical Devices, The Therac-25 (Levinson, Safeware: System Safety and Computers, 1995) SKIM!
3) The Rise of Worse is Better (Richard Gabriel, Lisp: Good News, Bad News, How to Win Big, 1989)

Therac lecture slides
Unix lecture slides
lecture video

The Wrong Patient (Chassin and Becher, American College of Physicians - American Society of Internal Medicine, 2002)
Radiation Offers New Cures, and Ways to Do Harm (New York Times 2010 flash animation)
The Task of the Referee (Smith)

Mon 08/29 OS Design
[lecture]

1) Exokernel: An Operating System Architecture for Application-Level Resource Management (Engler, Kaashoek, and O'Toole Jr., SOSP, 1995)    other notes
2) End-to-end Arguments in System Design -- (through page 4) -- (Saltzer, Reed, and Clark, TOCS, 1984)  other notes

Unix lecture slides
End-to-end+Exokernel lecture slides
lecture video

1) The Linux Edge (Linus Torvalds, Open Sources: Voices from the Open Source Revolution 1999)
Singularity: Rethinking the Software Stack (Hunt and Larus, SIGOPS OSR, 2007)
THE (Dijkstra, 1968)
Application performance and Flexibility on Exokernel Systems (Kaashoek, Engler, Ganger, Briceno, Hunt, Mazieres, Pinckney, Grimm, Jannotti, and Mackenzie, SOSP, 1997)
On Micro-Kernel Construction (Liedtke, SOSP, 1995)  notes

Wed 08/31 OS Design
[lecture]

1) Threads and Input/Output in the Synthesis Kernel (Massalin and Pu, SOSP, 1989)  other notes

Exokernel lecture slides

Synthesis lecture slides
lecture video

Chapter 6 from Massalin's Thesis (1992)
Protection and the Control of Information Sharing in Multics (Saltzer, 1974)

Mon 09/05 Labor Day

Wed 09/07 mmap + page faults
[lecture]

Understanding the Linux Kernel (3rd Edition) Chapter 9, Process Address Space (skim)
1) Practical, transparent operating system support for superpages (Navarro, Iyer, Druschel, and Cox, OSDI 2002)  

Synthesis lecture slides

Superpages lecture slides
lecture video

Coordinated and Efficient Huge Page Management with Ingens
Machine-Independent Virtual Memory Management for Paged Uniprocessor and Multiprocessor Architectures (Rashid, Tevanian, Young, Golub, Baron, Black, Bolosky, and Chew, 1987)

Mon 09/12 Virtual machines
[lecture]

Lab 0 due

1) Xen and Art of Virtualization (Barham, Dragovic, Fraser, Hand, Harris, Ho, Neugebaur, Pratt and Warfield, SOSP 2003).
2) Are Virtual Machine Monitors Microkernels Done Right? (Hand, Warfield, Fraser, Kotsovinos, and Magenheimer, HotOS 2005)
3) Are Virtual Machine Monitors Microkernels Done Right? (Heiser, Uhlig, and LeVasseur, SIGOPS OSR, 2006)

Superpages lecture slides
Xen lecture slides
lecture video

Intel Virtualization Technology (Uhlig, Neiger, Rodgers, Santoni, Martins, Anderson, Bennett, Kagi, Leung, and Smith, IEEE Computer 2005)
Intel Virtualization Technology (journal version) (Neiger, Santoni, Leung, Rodgers, Uhlig, Intel Technology Journal 2006)

Wed 09/14 Virtual machines
[lecture]

1) Memory Resource Management in VMware ESX Server (Waldspurger, OSDI, 2002)  other notes
-
Xen lecture slides
lecture video

The Turtles Project: Design and Implementation of Nested Virtualization (Ben-Yehuda, Day, Dubitzky, Factor, Har’El, Gordon, Liguoriz, Wasserman, Yassour, OSDI 2010)
Unix as an Application Process (Golub, USENIX, 1990)
Compatibility is not transparency VMM detection myths and realities (Garfinkel, Adams, Warfield, and Franklin, HOTOS, 2007)
Disco: Running Commodity Operating Systems on Scalable Multiprocessors (Bugnion, Devine, and Rosenblum, SOSP, 1997)  notes

Mon 09/19 Virtualization
[lecture]

1) X-Containers: Breaking Down Barriers to Improve Performance and Isolation of Cloud-Native Containers (Shen, Sun, Sela, Bagdasaryan, Delimitrou, Van Renesse, Weatherspoon, ASPLOS, 2019)  other notes

ESX+VMMs-vs-micro-kernels lecture slides
lecture video

Rethinking the Library OS from the Top Down (Porter, Boyd-Wickizer, Howell, Olinsky, and Hunt, ASPLOS 2011)
Containers
Dune: Safe User-level Access to Privileged CPU Features (Belay, Bittau, Mashtizadeh, Terei, Mazieres, Kozyrakis, OSDI 2012)

Wed 09/21 Lightweight Virtualization
[lecture]

1) Arrakis: The Operating System is the Control Plane (Peter, Li, Zhang, Ports, Woos, Krishnamurthy, Anderson, Roscoe. OSDI, 2014)  other notes
2) Jitsu: just-in-time summoning of unikernels (Madhavapeddy, Leonard, Skjegstad, Gazagnaire, Sheets, Scott, Mortier, Chaudhry, Singh, Ludlam, Crowcroft, Leslie, NSDI 2015)
3) AvA: Accelerated Virtualization of Accelerators(Yu, Akshintala, Peters, Rossbach ASPLOS 2020)

X-containers lecture slides
lecture video

Mon 09/26 File systems
[lecture]

1) Crash Consistency: FSCK and Journaling (Chapter 42 in Operating Systems: Three Easy Pieces) (R. Arpaci-Dusseau, A. Arpaci-Dusseau)
2) A Fast File System for UNIX (McKusick, Joy, Leffler, and Fabry, TOCS, 1984) other notes

lecture slides
lecture video

Disks from the Perspective of a File System (Marshall Kirk McKusick, ACM Queue, 2012)
Improving the Performance of fsck in FreeBSD (Marshall Kirk McKusick 2013)

Wed 09/28 File systems -- Guest Lecturer Aditya Tewari
[lecture]

Lab 1 due

1) The Design and Implementation of a Log-Structured File System (Rosenblum and Ousterhout, TOCS, 1992)  other notes
2) Ousterhout's critique of Seltzer's 1993 paper
3) Ousterhout's critique of Seltzer's 1995 paper
4) Seltzer's response to Ousterhout's critiques
5) Ousterhout's response to Seltzer
6) Log structured file systems: There's one in every SSD (Valerie Aurora (formerly Henson)) LWN 2009)

lecture slides

An Introduction to Disk Drive Modeling (Ruemmler and Wilkes, 1994)
Soft Updates: A Technique for Eliminating Most Synchronous Writes in the Fast Filesystem (McKusick and Ganger, USENIX, 1999)
Generalized File System Dependences (Frost, Mammarella, Kohler, de los Reyes, Hovsepian, Matsuoka, and Zhang, SOSP 2007)

Mon 10/03 Networked file systems
[lecture]

1) Design and Implementation of the SUN Network Filesystem (Sandberg, Goldberg, Kleiman, Walsh, and Lyon, USENIX, 1985)  other notes

JITSU lecture slides
AvA lecture slides
lecture video

XDR: External Data Representation Standard (M. Eisler, Ed., RFC 4506, 2006) pdf txt
Remote Procedure Calls (Birrell and Nelson, TOCS, 1984)  notes

Wed 10/05 Data center file systems
[lecture]

1) The Google File System (Ghemawat, Gobioff, and Leung, SOSP, 2003)  other notes

lecture slides
lecture video

1) GFS: Evolution on Fast-forward (McKusick and Quinlan, ACM Queue, 2009)

Mon 10/10 Events and Threads
[lecture]

1) Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980)  notes
2) The "Double-Checked Locking is Broken" Declaration (Bacon, Bloch, Bogda, Click, Haahr, Lea, May, Maessen, Mitchell, Nilsen, Pugh, Sirer, 2004)

lecture slides
lecture video

JSR 133 (Java Memory Model FAQ by Manson and Goetz, 2004)

Wed 10/12 Events and Threads
[lecture]

Lab 2 due

1) Scheduler Activations (Anderson, Bershad, Lazowska, and Levy, TOCS, 1992)
2) Introduction to Non-blocking IO (Kegel 1999)
3) Exchange between Linus Torvalds and David Patterson about parallelism Part 1
4) Part 2
5) Part 3

Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HOTOS, 2003)
Cooperative Task Management without Manual Stack Management Adya, Howell, Theimer, Bolosky, Douceur, USENIX 2002)

Mon 10/17 Exam

Exam in class.  faux-quiz compilation

Wed 10/19 Events and Threads
[lecture]

1) Experiences with Processes and Monitors in Mesa (Lampson and Redell, Communications of the ACM 23, 2, 1980)  notes
2) The "Double-Checked Locking is Broken" Declaration (Bacon, Bloch, Bogda, Click, Haahr, Lea, May, Maessen, Mitchell, Nilsen, Pugh, Sirer, 2004)

lecture slides
lecture video

JSR 133 (Java Memory Model FAQ by Manson and Goetz, 2004)

Mon 10/24 Events and Threads
[lecture]

Project Plan DUE

1) Scheduler Activations (Anderson, Bershad, Lazowska, and Levy, TOCS, 1992)
2) Introduction to Non-blocking IO (Kegel 1999)
3) Exchange between Linus Torvalds and David Patterson about parallelism Part 1
4) Part 2
5) Part 3

lecture slides
lecture video

Event-driven Programming for Robust Software (Dabek, Zeldovich, Kaashoek, Mazieres, and Morris, SIGOPS, 2002)
Why Events Are A Bad Idea (for high-concurrency servers) (von Behren, Condit, and Brewer, HOTOS, 2003)
Cooperative Task Management without Manual Stack Management Adya, Howell, Theimer, Bolosky, Douceur, USENIX 2002)

Wed 10/26 Concurrency and Transactions
[lecture]

Ordering concurrent events and transactions in Principles of Transaction Processing (second edition by Philip A. Bernstein and Eric Newcomer 2009)  book notes
The Art of Multiprocessor Programming (Maurice Herlihy and Nir Shavit, 2008) 3-3.6  book notes  notes

lecture slides
lecture video

Transaction Processing: Concepts and Techniques (Jim Gray and Andreas Reuter 1993) 1.1 - 1.2.5
4.2, 4.7 and 4.7.1, 4.9 and 4.9.1
7.1-7.6
The Transaction Concept (Gray, 1981)   notes

Mon 10/31 Concurrency and Transactions
[lecture]

1) Operating System Transactions (Porter, Hofmann, Rossbach, Benn, and Witchel, SOSP, 2009)

lecture slides
lecture video

Experiences with transactions in QuickSilver (Shmuck and Wyllie, SOSP 1991)

Wed 11/02 Concurrency & Synchronization
[lecture]

Revised Project Plan DUE

1) RaceTrack: Efficient Detection of Data Race Conditions via Adaptive Tracking (Yu, Rodeheffer, and Chen, SOSP, 2005) notes

lecture slides
lecture video

Eraser: A Dynamic Data Race Detector for Multithreaded Programs (Savage, Burrows, Nelson, Sobalvarro, Anderson, TOCS, 1997)

Mon 11/07 Datacenter computing
[lecture]

Lab 3 due

1) Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing (Zaharia, Chowdhury, Das, Dave, Ma, McCauley, Franklin, Shenker, and Stoica, NSDI 2012)
2) (SKIM) MapReduce: Simplified Data Processing on Large Clusters (Dean and Ghemawat, OSDI, 2004)
3) MapReduce: A Major Step Backwards (DeWitt and Stonebreaker, 2008)

lecture slides
lecture video

A Comparison of Approaches to Large-Scale Data Analysis (Pavlo, Paulson, Rasin, Abadi, DeWitt, Madden, Stonebreaker, SIGMOD 2009)
BigTable: A system for Distributed Structured Storage (Chang, Dean, Ghemawat, Hsieh, Wallach, Burrows, Chandra, Fikes, and Gruber, OSDI, 2006) webnotes video
Large-scale Incremental Processing Using Distributed Transactions and Notifications (Peng and Dabek, OSDI 2010)
Brewer's CAP Theorem (Browne 2009)
Spanner: Google's Globally-Distributed Database (Corbett, Dean, Epstein, Fikes, Frost, Furman, Ghemawat, Gubarev, Heiser, Hochschild, Hsieh, Kanthak, Kogan, Li, Lloyd, Melnik, Mwaura, Nagle, Quinlan, Rao, Rolig, Saito, Szymaniak, Taylor, Wang and Woodford, OSDI, 2012)
Dynamo: Amazon’s Highly Avaiable Key-value Store
PNUTS: Yahoo!'s Hosted Data Serving Platform (Cooper, Ramakrishnan, Srivastava, Silberstein, Bohannon, Jacobsen, Puz, Weaver, Yereni, VLDB, 2008)

Wed 11/09 Scale and Programmability
[lecture]

1) Tango: distributed data structures over a shared log (Balakrishnan, Malkhi, Wobber, Wu, Prabhakaran, Wei, Davis, Rao, Zou, Zuck, SOSP 2013)
2) Naiad: a timely dataflow system (Murray, McSherry, Isaacs, Isard, Barham, Abadi, SOSP 2013)
lecture slides
lecture video

DryadLINQ: a system for general-purpose distributed data-parallel computing using a high-level language (Yu, Isard, Fetterly, Budiu, Erlingsson, Gunda, Currey, OSDI 2008)

Mon 11/14 Scale and Programmability
[lecture]

1) PTask: operating system abstractions to manage GPUs as compute devices (Rossbach, Currey, Silberstein, Ray, Witchel, SOSP 2011)
2) Dandelion: a compiler and runtime for heterogeneous systems (Rossbach, Yu, Currey, Martin, Fetterly, SOSP 2013)

Tango lecture slides
Naiad lecture slides
lecture video

Wed 11/16 Heterogeneity
[lecture]

1) GPUfs: Integrating a file system with GPUs (Silberstein, Ford, Keidar, Witchel, ASPLOS 2013)

PTask lecture slides
Dandelion lecture slides
lecture video

Helios: heterogeneous multiprocessing with satellite kernels (Nightingale, Hodson, McIlroy, Hawblitzel, Hunt, SOSP 2009)
Tapping into the fountain of CPUs: on operating system support for programmable devices (Weinsberg, Dolev, Anker, Ben-Yehuda, Wyckoff, ASPLOS 2008)

Mon 11/21 Fall Break

Wed 11/23 Fall Break

Mon 11/28 Heterogeneity
[lecture]

1) Mnemosyne: Lightweight Persistent Memory (Volos, Tack, Swift, ASPLOS 2011)
2) 
(SKIM) Sharing, protection, and compatibility for reconfigurable fabric with AmorphOS
(Khawaja, Landgraf, Prakash, Wei, Schkufza, Rossbach, OSDI 2018)

Mnemosyne lecture slides
GPUfs lecture slides
lecture video

Pegasus: coordinated scheduling for virtualized accelerator-based systems (Gupta, Schwan, Tolia, Talwar, Ranganathan, ATC 2011)
TimeGraph: GPU scheduling for real-time multi-tasking environments

Wed 11/30 Exam 2
[lecture]

Exam in class.  faux-quiz compilation

Hints for Computer System Design (Lampson, SIGOPS OSR, 1983)
A Note on the Confinement Problem (Lampson, Communications of ACM, 1973)
Reflections on Trusting Trust <(Thompson, Turing Award Lecture, 1984)

Mon 12/05 Project Presentation Day

Presentations in Class

Wed 12/07 Project due

Project DUE

Fri 12/09 Additional reading

The Many Faces of Systems Research - And How To Evaluate Them (Brown, Chanda, Farrow, Fedorova, Maniatis, Scott, HotOS 2005)
The Confused Deputy (Hardy, SIGOPS OSR, 1988)  lecture notes
A Decentralized Model for Information Flow Control (Myers and Liskov, SOSP, 1997)
Laminar: Practical Fine-Grained Decentralized Information Flow Control (Roy, Setty, Kilzer, Shmatikov, Witchel, PLDI 2009)
Improving Application Security with Data Flow Assertions (Yip, Wang, Zeldovich, and Kaashoek, SOSP, 2009)
Why Cryptosystems Fail (Anderson, 1994)
Linearizability: A Correctness Condition for Concurrent Objects (Herlihy and Wing, TOPLAS, 1990)
Klee: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs (Cadar, Dunbar, and Engler, OSDI, 2008)
A few billion lines of code later: using static analysis to find bugs in the real world (Bessey, Block, Chelf, Chou, Fulton, Hallem, Henri-Gros, Kamsky, McPeak, Engler, CACM v53 no 2, 2010)
Weird things that surprise academics trying to commercialize a static checking tool (Chou, Chelf, Hallem, Hanri-Gros, Fulton, Unangst, Zak, and Engler, SPIN, 2005)
EROS: A Fast Capability System (Shapiro, Smith, and Farber, SOSP, 1999)
Capsicum: practical capabilities for UNIX (Watson, Anderson, Laurie, Kennaway, USENIX security 2010) < a href=lectures/capsicum.pdf>notes


Last updated: 2022-11-28 11:53:06 -0600 [validate xhtml]