CS 7934 — Computer Systems Seminar, Spring 2013

Fridays, 2:00–3:30 PM, 3485 MEB

Organizer: Eric Eide


The spring 2013 offering of CS 7934 will cover a variety of systems topics, with an eye toward three goals.

The first is to increase participants' understanding of reversible and “time-traveling” debugging. A reversible debugger allows a person to step a program both forward and backward in time. The power to move backward in time is extremely powerful. For example, if a programmer finds that a variable contains an incorrect value, he or she can run the program backwards to the execution point at which the variable was most recently written. Reversibility has been implemented at multiple granularities including language runtimes, process boundaries, and hardware-level virtual machines. We will study recent research publications about the implementation of reversible debuggers and their application to challenging systems-relevant problems including concurrency, performance, and security.

The second is to be a venue for student presentations. Every student participating in the seminar will be required to lead at least one meeting during the semester. This may be a “formal” research presentation—ideally of a student's current work—or it may be an analysis of the research papers chosen for a seminar meeting.

The third is to stay abreast of papers from recent and imminent top-tier systems conferences: e.g., SOSP, OSDI, NSDI, SIGCOMM, FAST, systems-related security conferences, and so on. Papers will be selected for their relevance to participants' research or upcoming Utah visitors.

CS 7934 is often called “the CSL seminar.” The name CSL is historic.

Mailing list

To get on the class mailing list, use Mailman to subscribe to csl-sem.


We strongly urge students to sign up for one credit if you're going to be attending anyway. Although the course is listed as “variable credit,” the course is only available for one (1) credit in all but the most exceptional circumstances. If you want to take the course for more than one credit, you must request and receive approval from the instructor.

Those taking the course for credit must read all of the papers, submit a short summary of each paper prior to class (PDF, Postscript, LaTeX), participate in each discussion, and make at least one research presentation.

A summary must consist of a student's original work. Unattributed copying of material from the papers being discussed or other sources is plagiarism as will be treated as such.


(You can check out what we did last semester here.)

Week Date Topic(s) Facilitator(s) Paper(s)
1 1/11 Eide no meeting — organizational email
2 1/18 a few reversible debuggers Eide Reversible Debugging. Paul Brook and Daniel Jacobowitz. In GCC Developers' Summit '07, Jul. 2007.

Efficient Algorithms for Bidirectional Debugging. Bob Boothe. In PLDI '00, Jun. 2000.

Supplementary: URDB: A Universal Reversible Debugger Based on Decomposing Debugging Histories. Ana-Maria Visan et al. In PLOS '11, Oct. 2011.
3 1/25 scriptable debugging Johnson Expositor: Scriptable Time-Travel Debugging with First Class Traces. Khoo Yit Phang et al. Submitted for publication, Aug. 2012.

A Dataflow Language for Scriptable Debugging. Guillaume Marceau et al. In ASE '04, Sep. 2004.

Supplementary: MzTake: A Scriptable Debugger. Jonathan Spiro et al. Aug. 2004.
4 2/1 systems potpourri Burtsev Fast Crash Recovery in RAMCloud. Diego Ongaro et al. In SOSP '11, Oct. 2011.

CDE: Run Any Linux Application On-Demand Without Installation. Philip Guo. In LISA '11, Dec. 2011.

Supplementary: BURRITO: Wrapping Your Lab Notebook in Computational Infrastructure. Philip Guo et al. In TaPP '12, Jun. 2012.
5 2/8 verifiable distributed algorithms Van der Merwe Efficient Verification of Web-Content Searching Through Authenticated Web Crawlers. Michael T. Goodrich et al. In VLDB '12, Jun. 2012.

MOMMIE Knows Best: Systematic Optimizations for Verifiable Distributed Algorithms. Petros Maniatis et al. In HotOS '11, May 2011.
6 2/15 scalable vulnerability detection Ricci NetShield: Massive Semantics-Based Vulnerability Signature Matching for High-Speed Networks. Zhichun Li et al. In SIGCOMM '10, Aug.–Sep. 2010.

CHEX: Statically Vetting Android Apps for Component Hijacking Vulnerabilities. Long Lu et al. In CCS '12, Oct. 2012.
7 2/22 no meeting — student research posters
8 3/1 information flow Byrd and Keep Language-Based Control and Mitigation of Timing Channels. Danfeng Zhang et al. In PLDI '12, Jun. 2012.

Supplementary: Precise Enforcement of Progress-Sensitive Security. Scott Moore et al. In CCS '12, Oct. 2012.
9 3/8 replay on multiprocessors Burtsev ODR: Output-Deterministic Replay for Multicore Debugging. Gautam Altekar and Ion Stoica. In SOSP '09, Oct. 2009.

PRES: Probabilistic Replay with Execution Sketching on Multiprocessors. Soyeon Park et al. In SOSP '09, Oct. 2009.
10 3/15 no meeting — University spring break
11 3/22 geo-replicated storage Sun Don't Settle for Eventual: Scalable Causal Consistency for Wide-Area Storage with COPS. Wyatt Lloyd et al. In SOSP '11, Oct. 2009.

Stronger Semantics for Low-Latency Geo-Replicated Storage. Wyatt Lloyd et al. In NSDI '13, Apr. 2013. To appear.
12 3/29 OS-based record and replay Nayak Flashback: A Lightweight Extension for Rollback and Deterministic Replay for Software Debugging. Sudarshan M. Srinivasan et al. In USENIX '04, Jun.–Jul. 2004.

Transparent, Lightweight Application Execution Replay on Commodity Multiprocessor Operating Systems. Oren Laadan et al. In SIGMETRICS '10, Jun. 2010.
13 4/5 wireless transport protocols Nguyen TCP/IP Performance over 3G Wireless Links with Rate and Delay Variation. Mun Choon Chan and Ramachandran Ramjee. In MobiCom '02, Sep. 2002.

Stochastic Forecasts Achieve High Throughput and Low Delay over Cellular Networks. Keith Winstein et al. In NSDI '13, Apr. 2013. To appear.
14 4/12 data-race detection Haran Dynamic Model Checking with Property Driven Pruning to Detect Race Conditions. Chao Wang et al. In ATVA '08, Oct. 2008.

Detecting and Surviving Data Races using Complementary Schedules. Kaushik Veeraraghavan et al. In SOSP '11, Oct. 2011.
15 4/19 mutable replay Raju Feasibility of Mutable Replay for Automated Regression Testing of Security Updates. Ilia Kravets and Dan Tsafrir. In RESoLVE '12, Mar. 2012.

Transparent Mutable Replay for Multicore Debugging and Patch Validation. Nicolas Viennot et al. In ASPLOS '13, Mar. 2013.
16 4/26 reversible computing Eide At 12:00 PM:
A Reversible Programming Language and its Invertible Self-Interpreter. Tetsuo Yokoyama and Robert Glück. In PEPM '07, Jan. 2007.

On Reversible Subroutines and Computers that Run Backwards. E. D. Reilly, Jr. and F. D. Federig. CACM, 8(9), Sep. 1965.

Supplementary: Janus interpreter. Poul J. Clementsen.

Potential Papers

Upcoming and recent conference proceedings are good sources of papers for discussion. Below are links to some relevant conference series.

Valid HTML 4.01 Transitional