CSC 591/791 Reliable Software Systems

Slides:



Advertisements
Similar presentations
Runtime Techniques for Efficient and Reliable Program Execution Harry Xu CS 295 Winter 2012.
Advertisements

CSC 501 Operating Systems Principles
Background for “KISS: Keep It Simple and Sequential” cs264 Ras Bodik spring 2005.
CS533 Concepts of Operating Systems Class 1 Course Overview.
CS510 Concurrent Systems Course Overview. CS510 - Concurrent Systems 2 About the Instructor  Instructor – Jonathan Walpole o Professor at PSU o Research.
CS533 Concepts of Operating Systems Class 1 Course Overview and Entrance Exam.
Microsoft Research Faculty Summit Yuanyuan(YY) Zhou Associate Professor University of Illinois, Urbana-Champaign.
Yuanyuan ZhouUIUC-CS Architectural Support for Software Bug Detection Yuanyuan (YY) Zhou and Josep Torrellas University of Illinois at Urbana-Champaign.
CS590 Z Software Defect Analysis Xiangyu Zhang. CS590F Software Reliability What is Software Defect Analysis  Given a software program, with or without.
CSE 322: Software Reliability Engineering Topics covered: Course outline and schedule Introduction, Motivation and Basic Concepts.
COMP171 Data Structures and Algorithm Qiang Yang Lecture 1 ( Fall 2006)
Object-Oriented Enterprise Application Development Course Introduction.
COMP 321: Introduction to Computer Systems Scott Rixner Alan L. Cox
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
CIS162AD: C#.Net Programming Level I Instructor: Gary R. Smith, MS.
COMP Introduction to Programming Yi Hong May 13, 2015.
15-740/ Oct. 17, 2012 Stefan Muller.  Problem: Software is buggy!  More specific problem: Want to make sure software doesn’t have bad property.
SE-308 Software Engineering-II 7th Term SE University of Engineering & Technology Taxila, Pakistan Software Engineering Department.
Advanced Database Course (ESED5204) Eng. Hanan Alyazji University of Palestine Software Engineering Department.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
CISC Machine Learning for Solving Systems Problems John Cavazos Dept of Computer & Information Sciences University of Delaware
Cooperative Concurrency Bug Isolation Guoliang Jin, Aditya Thakur, Ben Liblit, Shan Lu University of Wisconsin–Madison Instrumentation and Sampling Strategies.
Microsoft Management Seminar Series SMS 2003 Change Management.
An Undergraduate Course on Software Bug Detection Tools and Techniques Eric Larson Seattle University March 3, 2006.
ITCS 6265 Details on Project & Paper Presentation.
Diagnosing and Fixing Concurrency Bugs Credits to Dr. Guoliang Jin, Computer Science, NC STATE Presented by Tao Wang.
Copyright ©: Nahrstedt, Angrave, Abdelzaher1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois at.
CS614: Advanced Course in Computer Systems (Spring’04) Instructor: Ken Birman TA: non assigned (yet)
CS533 Concepts of Operating Systems Jonathan Walpole.
Cheating The School of Network Computing, the Faculty of Information Technology and Monash as a whole regard cheating as a serious offence. Where assignments.
Course Information CSE 2031 Fall Instructor U. T. Nguyen /new-yen/ Office: CSEB Office hours:  Tuesday,
Administrative Preliminaries Computer Architecture.
Computer Science 5204 Operating Systems Fall, 2012 Dr. Dennis Kafura Course Overview 1.
Copyright ©: Nahrstedt, Angrave, Abdelzaher, Caccamo1 University of Illinois at Urbana-Champaign Welcome to CS 241 Systems Programming University of Illinois.
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
INTRODUCTION TO COLLEGE WRITING Writing Workshop September 24 & 25, 2015.
Course Information EECS 2031 Fall Instructor Uyen Trang (U.T.) Nguyen Office: LAS Office hours: 
MGT 322 Week 5 Final Paper Check this A+ tutorial guideline at Focus of the Final.
Networking CS 3470, Section 1 Sarah Diesburg
Course Overview - Database Systems
Proper registration: Credit for your students and $ for the college
Andy Wang Object Oriented Programming in C++ COP 3330
Course Information EECS 2031 – Section A Fall 2017.
Computer Engineering Department Islamic University of Gaza
Software Quality and Testing (CSC 4133)
CSc 1302 Principles of Computer Science II
Software Testing.
CSE 374 Programming Concepts & Tools
MyStatLab Student help/instructions MTH/233
CS533 Concepts of Operating Systems Class 1
Visual Studio 2005 “Personalized productivity”
Course Overview - Database Systems
Andy Wang Object Oriented Programming in C++ COP 3330
Foundations of Programming Languages – Course Overview
Programming Languages
Foundations of Programming Languages – Course Overview
CS533 Concepts of Operating Systems Class 1
CS510 Concurrent Systems Jonathan Walpole.
First Semester 1439/1440 Welcome 
Course Information EECS 2031 Fall 2016.
Course Overview CS 4640 Programming Languages for Web Applications
Programming Languages
CIS5930 Interconnection Networks
New Student Orientation
New Student Orientation
CS533 Concepts of Operating Systems Class 1
Course Overview CS 4640 Programming Languages for Web Applications
Term Dr Abdelhafid Bouhraoua
Presentation transcript:

CSC 591/791 Reliable Software Systems

Logistics Instructor: Guoliang Jin M & W 1:30-2:45PM, EBI 2015 guoliang_jin@ncsu.edu EBII 2258 M & W 1:30-2:45PM, EBI 2015 TA/Grade: None Web pages: http://people.engr.ncsu.edu/gjin2/Classes/591/Spring2016/index.html (still under construction) https://moodle1516-courses.wolfware.ncsu.edu/course/view.php?id=6593

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 http://llvm.org/docs/tutorial/index.html