W1 |
Tu 1/26 |
|
Course Introduction (Lecture 1) |
- How to Read an Engineering Research Paper, William G. Griswold
- How to Read a Paper, S. Keshav
|
|
|
|
Th 1/28 |
Understand Failures
|
Empirical Study (Lecture 2) |
- Why Do Computers Stop and What Can Be Done About It?, Jim Gray
- An Empirical Study of Operating Systems Errors, Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson Engler, SOSP '01
Additional:
|
|
|
W2 |
Tu 2/2 |
Find Bugs
|
Static Analysis I |
- Program Analysis via Graph Reachability, Thomas Reps
- LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation, Chris Lattner, Vikram Adve, CGO '04
|
1. Earl Wu 2. Ned Whitman |
|
|
Th 2/4 |
|
Static Analysis II |
- Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code, Dawson Engler, David Y. Chen, Seth Hallem, Andy Chou, Benjamin Chelf, SOSP '01
- A System and Language for Building System-Specific, Static Analyses, Seth Hallem, Benjamin Chelf, Yichen Xie, Dawson Engler, PLDI '02
|
1. Chang Lou |
|
W3 |
Tu 2/9 |
|
Static Analysis III |
- CP-Miner: A Tool for Finding Copy-paste and Related Bugs in Operating System Code, Zhenmin Li, Shan Lu, Suvda Myagmar, Yuanyuan Zhou, OSDI '04
- Scaling Static Analyses at Facebook, Dino Distefano, Manuel Fähndrich, Francesco Logozzo, Peter W. O'Hearn, CACM '19
Additional:
- /* iComment: Bugs or Bad Comments? */, Lin Tan, Ding Yuan, Gopal Krishna, Yuanyuan Zhou, SOSP '07
- A few billion lines of code later: using static analysis to find bugs in the real world, Al Bessey, Ken Block, Ben Chelf, Andy Chou, Bryan Fulton, Seth Hallem, Charles Henri-Gros, Asya Kamsky, Scott McPeak, Dawson Engler., CACM '10
|
1. Samantha Z. 2. Catalina |
|
|
Th 2/11 |
|
Dynamic Analysis |
- Eraser: a dynamic data race detector for multithreaded programs, Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, SOSP '97
- Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, Nicholas Nethercote, Julian Seward, PLDI '07
Additional:
|
1. Chang Lou |
|
W4 |
Tu 2/16 |
|
Binary Analysis |
- Pin: building customized program analysis tools with dynamic instrumentation, Chi-Keung Luk, Robert Cohn, Robert Muth, Harish Patil, Artur Klauser, Geoff Lowney, Steven Wallace, Vijay J. Reddi, Kim Hazelwood, PLDI '05
- BAP: A Binary Analysis Platform, David Brumley, Ivan Jager, Thanassis Avgerinos, Edward J. Schwartz, CAV '01
|
1. April Kim 2. Gongqi Huang |
|
|
Th 2/18 |
|
Symbolic Execution I |
- EXE: Automatically Generating Inputs of Death, Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, Dawson R. Engler, CCS '06
- DART: Directed Automated Random Testing, Patrice Godefroid, Nils Klarlund, Koushik Sen, PLDI '05
|
1. Shreyas 2. Nathan Drenkow |
|
W5 |
Tu 2/23 |
|
Symbolic Execution II |
- KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, Cristian Cadar, Daniel Dunbar, Dawson Engler, OSDI '08
Additional:
|
1. Gongqi Huang |
Project proposal due |
|
Th 2/25 |
|
Fuzzing |
- Coverage-based Greybox Fuzzing as Markov Chain, Marcel B\"{o}hme, Van-Thuan Pham, Abhik Roychoudhury, CCS '16
- VUzzer: Application-aware Evolutionary Fuzzing, Sanjay Rawat, Vivek Jain, Ashish Kumar, Lucian Cojocar, Cristiano Giuffrida, Herbert Bos, NDSS '17
Additional:
|
1. Catalina 2. Bohan Ni |
|
W6 |
Tu 3/2 |
Project Hacking Day |
|
|
|
|
|
Th 3/4 |
|
Misconfiguration |
- Early Detection of Configuration Errors to Reduce Failure Damage, Tianyin Xu, Xinxin Jin, Peng Huang, Yuanyuan Zhou, Shan Lu, Long Jin, Shankar Pasupathy, OSDI '16
- Automated Reasoning and Detection of Specious Configuration in Large Systems with Symbolic Execution, Yigong Hu, Gongqi Huang, Peng Huang, OSDI '20
Additional:
|
1. Ryan 2. Yigong Hu |
|
W7 |
Tu 3/9 |
Formal Methods
|
Model Checking |
- CMC: A Pragmatic Approach to Model Checking Real Code, Madanlal Musuvathi, David Y. Park, Andy Chou, Dawson R. Engler, David L. Dill, OSDI '02
- Using Model Checking to Find Serious File System Errors, Junfeng Yang, Paul Twohey, Dawson Engler, Madanlal Musuvathi, OSDI '04
|
1. Samantha Z. 2. Yuzhuo Jing |
|
|
Th 3/11 |
Project Hacking Day |
|
|
|
|
W8 |
Tu 3/16 |
|
Verification I |
- Using Crash Hoare Logic for Certifying the FSCQ File System, Haogang Chen, Daniel Ziegler, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, Nickolai Zeldovich, SOSP '15
- Push-Button Verification of File Systems via Crash Refinement, Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, Xi Wang, OSDI '16
Additional:
- seL4: Formal Verification of an OS Kernel, G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, T. Sewell, H. Tuch, and S. Winwood, SOSP '09
|
1. Earl Wu. 2. Nathan Drenkow |
|
|
Th 3/18 |
|
Verification II |
- IronFleet: Proving Practical Distributed Systems Correct, Chris Hawblitzel, Jon Howell, Manos Kapritsos, Jacob R. Lorch, Bryan Parno, Michael L. Roberts, Srinath Setty, Brian Zill, SOSP '15
Additional:
|
1. Benjamin D. Killeen |
|
W9 |
Tu 3/23 |
|
Proof-Carrying Code |
- Safe Kernel Extensions Without Run-Time Checking, George C. Necula, Peter Lee, OSDI '96
|
1. Shreyas |
|
|
Th 3/25 |
Failure Diagnosis
|
Debugging |
- Yesterday, my program worked. Today, it does not. Why?, Andreas Zeller, FSE '99
- Statistical Debugging: A Hypothesis Testing-Based Approach, Chao Liu, Long Fei, Xifeng Yan, Jiawei Han, Samuel P. Midkiff, TSE '06
Additional:
|
1. Catalina 2. Bohan Ni |
|
W10 |
Tu 3/30 |
Spring Break |
|
|
|
|
|
Th 4/1 |
|
Debugging II |
- Triage: Diagnosing Production Run Failures at the User's Site, Joseph Tucek, Shan Lu, Chengdu Huang, Spiros Xanthos, Yuanyuan Zhou, SOSP '07
- REPT: Reverse Debugging of Failures in Deployed Software, Weidong Cui, Xinyang Ge, Baris Kasikci, Ben Niu, Upamanyu Sharma, Ruoyu Wang, Insu Yun, OSDI '18
|
|
Checkpoint report due |
W11 |
Tu 4/6 |
|
Logging |
- Be Conservative: Enhancing Failure Diagnosis with Proactive Logging, Ding Yuan, Soyeon Park, Peng Huang, Yang Liu, Michael M. Lee, Xiaoming Tang, Yuanyuan Zhou, Stefan Savage, OSDI '12
- Improving Software Diagnosability via Log Enhancement, Ding Yuan, Jing Zheng, Soyeon Park, Yuanyuan Zhou, Stefan Savage, ASPLOS '11
Additional:
|
1. Shreyas |
|
|
Th 4/8 |
|
Taint Tracking |
- Automating Configuration Troubleshooting with Dynamic Information Flow Analysis, Mona Attariyan, Jason Flinn, OSDI '10
Additional:
|
1. Benjamin D. Killeen |
|
W12 |
Tu 4/13 |
|
Record & Replay |
- DoublePlay: Parallelizing Sequential Logging and Replay, Kaushik Veeraraghavan, Dongyoon Lee, Benjamin Wester, Jessica Ouyang, Peter M. Chen, Jason Flinn, Satish Narayanasamy, ASPLOS '11
- PRES: probabilistic replay with execution sketching on multiprocessors, Soyeon Park, Yuanyuan Zhou, Weiwei Xiong, Zuoning Yin, Rini Kaushik, Kyu H. Lee, Shan Lu, SOSP '09
|
|
|
|
Th 4/15 |
Runtime Survival
|
Fault Isolation |
- Improving the Reliability of Commodity Operating Systems, Michael M. Swift, Brian N. Bershad, Henry M. Levy, SOSP '03
- Efficient software-based fault isolation, Robert Wahbe, Steven Lucco, Thomas E. Anderson, Susan L. Graham, SOSP '93
|
|
|
W13 |
Tu 4/20 |
|
Ignore Failures |
- Enhancing Server Availability and Security Through Failure-Oblivious Computing, Martin Rinard, Cristian Cadar, Daniel Dumitran, Daniel M. Roy, Tudor Leu, William S. Beebee, OSDI '04
- Treating bugs as allergies---a safe method to survive software failure, Feng Qin, Joseph Tucek, Jagadeesan Sundaresan, Yuanyuan Zhou, SOSP '05
|
|
|
|
Th 4/22 |
Spring Break |
|
|
|
|
W14 |
Tu 4/27 |
|
Recovery |
- Microreboot -- A Technique for Cheap Recovery, George Candea, Shinichi Kawamoto, Yuichi Fujiki, Greg Friedman, Armando Fox, OSDI '04
Additional:
|
|
|
|
Th 4/29 |
|
Mini-research conference |
|
|
|