W1 |
Mon 01/24 |
|
Course Introduction (Lecture 1)
|
- How to Read an Engineering Research Paper, William G. Griswold
- How to Read a Paper, S. Keshav
|
|
|
|
Wed 01/26 |
Understand Failures
|
Empirical Study
|
- 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 |
Mon 01/31 |
Find Bugs
|
Static Analysis I (Lecture 3) |
- A Program Data Flow Analysis Procedure, F.E. Allen and J. Cocke
- LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation, Chris Lattner, Vikram Adve, CGO '04
|
|
|
|
Wed 02/02 |
|
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
- RacerX: Effective, Static Detection of Race Conditions and Deadlocks, Dawson Engler, Ken Ashcraft, SOSP '03
|
1. Elizabeth 2. Isabel Cachola |
|
W3 |
Mon 02/07 |
|
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
- MUVI: Automatically Inferring Multi-Variable Access Correlations and Detecting Related Semantic and Concurrency Bugs, Shan Lu, Soyeon Park, Chongfeng Hu, Xiao Ma, Weihang Jiang, Zhenmin Li, Raluca A. Popa, Yuanyuan Zhou, SOSP '07
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
- Scaling Static Analyses at Facebook, Dino Distefano, Manuel Fähndrich, Francesco Logozzo, Peter W. O'Hearn, CACM '19
|
1. Narayani Wagle 2. Yimeng He |
|
|
Wed 02/09 |
|
Dynamic Analysis |
- Eraser: a dynamic data race detector for multithreaded programs, Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, SOSP '97
- AVIO: Detecting Atomicity Violations via Access Interleaving Invariants, Shan Lu, Joseph Tucek, Feng Qin, Yuanyuan Zhou, ASPLOS '06
Additional:
|
1. Eric Lara 2. William Li |
|
W4 |
Mon 02/14 |
|
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
- Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, Nicholas Nethercote, Julian Seward, PLDI '07
Additional:
- SoK: (State of) The Art of War: Offensive Techniques in Binary Analysis, Yan Shoshitaishvili, Ruoyu Wang, Christopher Salls, Nick Stephens, Mario Polino, Audrey Dutcher, John Grosen, Siji Feng, Christophe Hauser, Christopher Kruegel, Giovanni Vigna, S&P '16
- Angr: a Python framework for binary analysis
- BAP: A Binary Analysis Platform, David Brumley, Ivan Jager, Thanassis Avgerinos, Edward J. Schwartz, CAV '01
|
1. Haoze Wu 2. Tony Pan |
|
|
Wed 02/16 |
|
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. Arthur Beyer 2. Mingqing Kang |
|
W5 |
Mon 02/21 |
|
Symbolic Execution II |
- KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, Cristian Cadar, Daniel Dunbar, Dawson Engler, OSDI '08
- Under-Constrained Symbolic Execution: Correctness Checking for Real Code, David A. Ramos, Dawson Engler, USENIX Security '15
Additional:
|
1. Xiecongyou Yang 2. Instructor |
Project proposal due |
|
Wed 02/23 |
|
Fuzzing |
- Coverage-based Greybox Fuzzing as Markov Chain, Marcel Bö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. Mitchell Pavlak 2. Yuning Wu |
|
W6 |
Mon 02/28 |
Project Hacking Day |
|
|
|
|
|
Wed 03/02 |
|
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. Yigong Hu 2. Yigong Hu |
|
W7 |
Mon 03/07 |
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. Haoze Wu |
|
|
Wed 03/09 |
Project Hacking Day |
|
|
|
|
W8 |
Mon 03/14 |
|
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
|
1. William Li 2. Tony Pan |
|
|
Wed 03/16 |
|
Verification II |
- 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
- Formal Verification of a Realistic Compiler, Xavier Leroy, CACM '09
|
1. Xiecongyou Yang 2. Eric Lara |
|
W9 |
Mon 03/21 |
Spring Break |
|
|
|
|
|
Wed 03/23 |
Spring Break |
|
|
|
|
W10 |
Mon 03/28 |
|
Verification III |
- 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. Yimeng He |
|
|
Wed 03/30 |
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. Isabel Cachola 2. Elizabeth |
|
W11 |
Mon 04/04 |
|
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
|
1. Arthur Beyer 2. Yuning Wu |
Checkpoint report due |
|
Wed 04/06 |
|
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. Narayani Wagle 2. Mingqing Kang |
|
W12 |
Mon 04/11 |
|
Taint Tracking |
- Automating Configuration Troubleshooting with Dynamic Information Flow Analysis, Mona Attariyan, Jason Flinn, OSDI '10
- TaintDroid: An Information-Flow Tracking System for Realtime Privacy Monitoring on Smartphones, William Enck, Peter Gilbert, Byung-gon Chun, Landon P. Cox, Jaeyeon Jung, Patrick McDaniel, and Anmol N. Sheth, OSDI '10
|
1. Mitchell Pavlak 2. Tony Pan |
|
|
Wed 04/13 |
|
Record & Replay |
- 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
- Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism, Dongyoon Lee, Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, Jason Flinn, ASPLOS '10
Additional:
|
Instructor |
|
W13 |
Mon 04/18 |
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
|
1. William Li 2. Xiecongyou Yang |
|
|
Wed 04/20 |
|
Failure Detection |
- Detecting failures in distributed systems with the Falcon spy network, Joshua B. Leners, Hao Wu, Wei-Lun Hung, Marcos K. Aguilera, Michael Walfish, SOSP '11
- Understanding, Detecting and Localizing Partial Failures in Large System Software, Chang Lou, Peng Huang, Scott Smith, NSDI '20
|
1. Chang Lou 2. Chang Lou |
|
W14 |
Mon 04/25 |
|
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
|
|
|
|
Wed 04/27 |
|
Mini-research conference |
|
|
|