Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSC 591/791 Reliable Software Systems

Similar presentations


Presentation on theme: "CSC 591/791 Reliable Software Systems"— Presentation transcript:

1 CSC 591/791 Reliable Software Systems

2 Logistics Instructor: Guoliang Jin M & W 1:30-2:45PM, EBI 2015
EBII 2258 M & W 1:30-2:45PM, EBI 2015 TA/Grade: None Web pages: (still under construction)

3 Who Am I? Joined the Pack in Jan. 2015
Got my Ph.D. from UW-Madison in Dec. 2014 Interested in software system reliability Focus: detecting, diagnosing, and fixing various kinds of software bugs

4 Who Are You? Name Program Research/employment interests
How does reliability relate to your interests? Particular topics you are interested in?

5 Course Structure Read and discuss papers on software reliability
Papers from system, PL, and SE Read every paper and present 2 or 3 Write review once every week No textbook No exam Do a research-oriented project

6 General Policies Attend every class unless you have to miss it
Arrive on tome unless you have to be late

7 Grade Components Paper presentations: 20% Paper reviews: 20%
Class participation: 10% Final project: 50%

8 Paper Presentations: 20%
Two papers on a related topic Each presentation: Around 25 min talk Around 10 min discussion Present 2-3 papers the whole semester You can also suggest papers to read Suggest papers together with your first review Then we finalize the list and assign presenters

9 Presentation Tips Practice your talk!
Make sure the audience can follow you Use examples Do not just repeat the paper More tips will be posted online

10 Paper Reviews: 20% One paper review for one paper every week
Limit yourself to 800 words Discuss the following aspects: Problem Solution The cool part The flaw Ideas for future work Problems in understanding the paper

11 Review Tips Submit your review on moodle no later than 11:59PM the day before class Don’t simply repeat the paper Check your spelling and grammer

12 Class Participation: 10%
Attend each class Involved in the discussion

13 Final Project: 50% Group of one of two
You are encouraged to propose your project Take the ownership of the project and push to get it published More details in two weeks

14 Topics: Program Analysis Approaches
Static analysis Dynamic analysis Symbolic execution Concolic testing Delta debugging Statistical debugging

15 Topics: Concurrency Bugs
Concurrency bug study Data race Atomicity Deadlock Automated fixing Record & replay Deterministic multithreading

16 Topic: Others Performance bugs C compiler bugs
Memory bug detection and fixing Program invariants Logging Recovery Automated assignments grading Architecture support Mobil system debugging Distributed system debugging

17 Previous Work and Publications 1
Automated concurrency-bug fixing Automated Atomicity-Violation Fixing, PLDI '11 Automated Concurrency-Bug Fixing, OSDI '12 Production-run multi-threaded software failure diagnosis Instrumentation and Sampling Strategies for Cooperative Concurrency Bug Isolation, OOPSLA '10 Production-Run Software Failure Diagnosis via Hardware Performance Counters, ASPLOS '13 Leveraging the Short-Term Memory of Hardware to Diagnose Production-Run Software Failures, ASPLOS '14

18 Previous Work and Publications 2
Performance bug characteristics study and detection Understanding and Detecting Real-World Performance Bugs, PLDI '12 Performance bug patch validation Validating Library Usage Interactively, CAV '13 Concurrency bug detection ConSeq: Detecting Concurrency Bugs through Sequential Errors, ASPLOS '11

19 Previous Work and Publications 3
More studies What change history tells us about thread synchronization, FSE '15 Automatic Server Hang Bug Diagnosis: Feasible Reality or Pipe Dream? ICAC '15 Execution problem detection for cloud CloudSeer: Workflow Monitoring of Cloud Infrastructures via Interleaved Logs, ASPLOS '16

20 High-level Approach Use real-world data to guide the design of various tools Real-world bug study Real-world software evolution study Design end-to-end tool chains Bug understanding Bug detection Failure diagnosis Bug fixing

21 Review One and Suggest Topics
Read “Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions” Skim “A few Billion Lines of code Later using static Analysis to find Bugs in the Real World” Read “Towards Optimization-Safe Systems: Analyzing the Impact of Undefined Behavior” Skim LLVM tutorial


Download ppt "CSC 591/791 Reliable Software Systems"

Similar presentations


Ads by Google