Note this schedule is subject to change. Please check this page frequently.

Privacy notice

Week Date Theme Topic Readings Presenter Assignment
W1 Tu 1/26 Course Introduction
(Lecture 1)
  1. How to Read an Engineering Research Paper, William G. Griswold
  2. How to Read a Paper, S. Keshav
Th 1/28 Understand Failures
Empirical Study
(Lecture 2)
  1. Why Do Computers Stop and What Can Be Done About It?, Jim Gray
  2. An Empirical Study of Operating Systems Errors, Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson Engler, SOSP '01
W2 Tu 2/2 Find Bugs
Static Analysis I
  1. Program Analysis via Graph Reachability, Thomas Reps
  2. 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
  1. 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
  2. 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
  1. 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
  2. Scaling Static Analyses at Facebook, Dino Distefano, Manuel Fähndrich, Francesco Logozzo, Peter W. O'Hearn, CACM '19
1. Samantha Z.
2. Catalina
Th 2/11 Dynamic Analysis
  1. Eraser: a dynamic data race detector for multithreaded programs, Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro, Thomas Anderson, SOSP '97
  2. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, Nicholas Nethercote, Julian Seward, PLDI '07
1. Chang Lou
W4 Tu 2/16 Binary Analysis
  1. 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
  2. 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
  1. EXE: Automatically Generating Inputs of Death, Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, Dawson R. Engler, CCS '06
  2. 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
  1. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs, Cristian Cadar, Daniel Dunbar, Dawson Engler, OSDI '08
1. Gongqi Huang Project proposal due
Th 2/25 Fuzzing
  1. Coverage-based Greybox Fuzzing as Markov Chain, Marcel B\"{o}hme, Van-Thuan Pham, Abhik Roychoudhury, CCS '16
  2. VUzzer: Application-aware Evolutionary Fuzzing, Sanjay Rawat, Vivek Jain, Ashish Kumar, Lucian Cojocar, Cristiano Giuffrida, Herbert Bos, NDSS '17
1. Catalina
2. Bohan Ni
W6 Tu 3/2 Project Hacking Day
Th 3/4 Misconfiguration
  1. 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
  2. Automated Reasoning and Detection of Specious Configuration in Large Systems with Symbolic Execution, Yigong Hu, Gongqi Huang, Peng Huang, OSDI '20
1. Ryan
2. Yigong Hu
W7 Tu 3/9 Formal Methods
Model Checking
  1. CMC: A Pragmatic Approach to Model Checking Real Code, Madanlal Musuvathi, David Y. Park, Andy Chou, Dawson R. Engler, David L. Dill, OSDI '02
  2. 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
  1. 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
  2. Push-Button Verification of File Systems via Crash Refinement, Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, Xi Wang, OSDI '16
  • 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
  1. 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
1. Benjamin D. Killeen
W9 Tu 3/23 Proof-Carrying Code
  1. Safe Kernel Extensions Without Run-Time Checking, George C. Necula, Peter Lee, OSDI '96
1. Shreyas
Th 3/25 Failure Diagnosis
  1. Yesterday, my program worked. Today, it does not. Why?, Andreas Zeller, FSE '99
  2. Statistical Debugging: A Hypothesis Testing-Based Approach, Chao Liu, Long Fei, Xifeng Yan, Jiawei Han, Samuel P. Midkiff, TSE '06
1. Catalina
2. Bohan Ni
W10 Tu 3/30 Spring Break
Th 4/1 Debugging II
  1. Triage: Diagnosing Production Run Failures at the User's Site, Joseph Tucek, Shan Lu, Chengdu Huang, Spiros Xanthos, Yuanyuan Zhou, SOSP '07
  2. 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
  1. 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
  2. Improving Software Diagnosability via Log Enhancement, Ding Yuan, Jing Zheng, Soyeon Park, Yuanyuan Zhou, Stefan Savage, ASPLOS '11
1. Shreyas
Th 4/8 Taint Tracking
  1. Automating Configuration Troubleshooting with Dynamic Information Flow Analysis, Mona Attariyan, Jason Flinn, OSDI '10
1. Benjamin D. Killeen
W12 Tu 4/13 Record & Replay
  1. DoublePlay: Parallelizing Sequential Logging and Replay, Kaushik Veeraraghavan, Dongyoon Lee, Benjamin Wester, Jessica Ouyang, Peter M. Chen, Jason Flinn, Satish Narayanasamy, ASPLOS '11
  2. 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
  1. Improving the Reliability of Commodity Operating Systems, Michael M. Swift, Brian N. Bershad, Henry M. Levy, SOSP '03
  2. Efficient software-based fault isolation, Robert Wahbe, Steven Lucco, Thomas E. Anderson, Susan L. Graham, SOSP '93
W13 Tu 4/20 Ignore Failures
  1. 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
  2. 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
  1. Microreboot -- A Technique for Cheap Recovery, George Candea, Shinichi Kawamoto, Yuichi Fujiki, Greg Friedman, Armando Fox, OSDI '04
Th 4/29 Mini-research conference
  Privacy Notice

The presenters whose names appear in the schedule have given the instructor explicit permissions to list their names in this website.

In order to accommodate students who live in a distant time zone and need to take the course asynchronously, the lectures of this course will be video-recorded using the JHU-hosted Panopto service. The recorded videos are only accessible to students enrolled in this course. Students who are not enrolled in this course shall not join the Zoom class meetings. By default, only those who speak during the session will be recorded. Students can choose to turn off their video if they do not want it captured when they speak. By default, student names will be viewable to participants during the class, but they will not be included in the recording. Students are allowed to opt-out from identification in the recording by muting their audio, not enabling video, and not typing in the chat window. In these cases, students are still considered in attendance and not penalized in any way; the instructor will work with these students to determine an alternate method of participation in discussions.

The recordings, transcriptions, and chat logs will be deleted by 60 days after the last day of the course.

Ryan Huang | Last updated 2021-04-08 10:19:31 -0400.