Schedule

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

Privacy notice

Week Date Theme Topic Readings Presenter Assignment
W1 Mon 01/24 Course Introduction (Lecture 1)
  1. How to Read an Engineering Research Paper, William G. Griswold
  2. How to Read a Paper, S. Keshav
Wed 01/26 Understand Failures
Empirical Study
  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
Additional:
W2 Mon 01/31 Find Bugs
Static Analysis I (Lecture 3)
  1. A Program Data Flow Analysis Procedure, F.E. Allen and J. Cocke
  2. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation, Chris Lattner, Vikram Adve, CGO '04
Wed 02/02 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. 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
  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. 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:
1. Narayani Wagle
2. Yimeng He
Wed 02/09 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. 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
  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. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation, Nicholas Nethercote, Julian Seward, PLDI '07
  3. Additional:
1. Haoze Wu
2. Tony Pan
Wed 02/16 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. Arthur Beyer
2. Mingqing Kang
W5 Mon 02/21 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
  2. 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
  1. Coverage-based Greybox Fuzzing as Markov Chain, Marcel Bö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
Additional:
1. Mitchell Pavlak
2. Yuning Wu
W6 Mon 02/28 Project Hacking Day
Wed 03/02 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
Additional:
1. Yigong Hu
2. Yigong Hu
W7 Mon 03/07 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. Haoze Wu
Wed 03/09 Project Hacking Day
W8 Mon 03/14 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
1. William Li
2. Tony Pan
Wed 03/16 Verification II
  1. 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
  2. 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
  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
Additional:
1. Yimeng He
Wed 03/30 Failure Diagnosis
Debugging
  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
Additional:
1. Isabel Cachola
2. Elizabeth
W11 Mon 04/04 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
1. Arthur Beyer
2. Yuning Wu
Checkpoint report due
Wed 04/06 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
Additional:
1. Narayani Wagle
2. Mingqing Kang
W12 Mon 04/11 Taint Tracking
  1. Automating Configuration Troubleshooting with Dynamic Information Flow Analysis, Mona Attariyan, Jason Flinn, OSDI '10
  2. 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
  1. 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
  2. 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
  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
1. William Li
2. Xiecongyou Yang
Wed 04/20 Failure Detection
  1. 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
  2. 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
  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
Wed 04/27 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 2022-04-13 10:41:33 -0400.