On Concurrency Idioms and their Effect on Program Analysis Weizmann Institute of Science Guy Katz and David Harel.

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

M ODEL CHECKING -Vasvi Kakkad University of Sydney.
Addressing the Trust Asymmetry Problem In Grid Computing with Encrypted Computation Peter A. Dinda Prescience Lab Department of Computer Science Northwestern.
Greta YorshEran YahavMartin Vechev IBM Research. { ……………… …… …………………. ……………………. ………………………… } T1() Challenge: Correct and Efficient Synchronization { ……………………………
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Race Directed Random Testing of Concurrent Programs KOUSHIK SEN - UNIVERSITY OF CALIFORNIA, BERKELEY PRESENTED BY – ARTHUR KIYANOVSKI – TECHNION, ISRAEL.
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
PRAM (Parallel Random Access Machine)
Run Time Monitoring of Reactive System Models Mikhail Auguston Naval Postgraduate School Mark Trakhtenbrot Holon Academic Institute of.
1 Behavioral Programming A review of recent research: ECOOP’10, ASE’10, ICFP’10, ICPC’11, EMSOFT’11, AGERE’11, ICTAI’11 David Harel, Assaf Marron, Smadar.
Predictable Design for Real-time Embedded Control A Case Study Jinfeng Huang & Jeroen Voeten Eindhoven University of Technology PROGRESS.
Tele Design of Reactive Systems Summer 2001 Prof. Dr. Stefan Leue Institute for Computer Science Albert-Ludwigs-Universität Freiburg
1 8. Safe Query Languages Safe program – its semantics can be at least partially computed on any valid database input. Safety is tied to program verification,
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Component-Based Abstraction Juncao Li Dept. of Computer Science Portland State University.
Utah Verifier Group Research Overview Robert Palmer.
FIGURE 1-1 A Computer System
ICS (062)CC in Adv. DB Applications1 Concurrency Control in Advanced Database Applications Dr. Muhammad Shafique 31 March 2007.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Carolyn Seaman University of Maryland, Baltimore County.
Yu SunUniversity of Alabama at Birmingham PAR Works Jeff Gray University of Alabama Montpellier, France July 3rd, 2013 This research is supported.
Lifecycle Verification of the NASA Ames K9 Rover Executive Dimitra Giannakopoulou Mike Lowry Corina Păsăreanu Rich Washington.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Abstraction IS 101Y/CMSC 101 Computational Thinking and Design Tuesday, September 17, 2013 Marie desJardins University of Maryland, Baltimore County.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
Dynamic Analysis of Multithreaded Java Programs Dr. Abhik Roychoudhury National University of Singapore.
Inferring Specifications to Detect Errors in Code Mana Taghdiri Presented by: Robert Seater MIT Computer Science & AI Lab.
By Ian Jackman Davit Stepanyan.  User executed untested code.  The order in which statements were meant to be executed are different than the order.
A Static Approach to Consistency Verification of UML Models Andrea Baruzzo Department of Computer Science University of Udine MoDeV.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Dynamic software reconfiguration using control supervisors Ugo Buy 13 June 2005.
CS 367: Model-Based Reasoning Lecture 5 (01/29/2002) Gautam Biswas.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Fault-Tolerant Parallel and Distributed Computing for Software Engineering Undergraduates Ali Ebnenasir and Jean Mayo {aebnenas, Department.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,
MASE : Modeling & Analysis in Software Engineering School of Computing Queen’s University Kingston, Ontario, Canada Juergen Dingel CAMPAM, April 29, 2012.
By: David Harel & Eran Grey Presenter: Elizabeth Antony CISC 836.
1 Compiler Design (40-414)  Main Text Book: Compilers: Principles, Techniques & Tools, 2 nd ed., Aho, Lam, Sethi, and Ullman, 2007  Evaluation:  Midterm.
1 Run-Time Software Engineering An approach for Embedded and Ubiquitous Computing Environments Sooyong Park Sogang University South.
Xusheng Xiao North Carolina State University CSC 720 Project Presentation 1.
Theory of Programming Languages Introduction. What is a Programming Language? John von Neumann (1940’s) –Stored program concept –CPU actions determined.
ICFEM 2002, Shanghai Reasoning about Hardware and Software Memory Models Abhik Roychoudhury School of Computing National University of Singapore.
CSV 889: Concurrent Software Verification Subodh Sharma Indian Institute of Technology Delhi State merging, Concolic Execution.
Using Symbolic PathFinder at NASA Corina Pãsãreanu Carnegie Mellon/NASA Ames.
Theory-Aided Model Checking of Concurrent Transition Systems Guy Katz, Clark Barrett, David Harel New York University Weizmann Institute of Science.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Model Checking Lecture 1. Model checking, narrowly interpreted: Decision procedures for checking if a given Kripke structure is a model for a given formula.
Program Correctness. The designer of a distributed system has the responsibility of certifying the correctness of the system before users start using.
Specifying Multithreaded Java semantics for Program Verification Abhik Roychoudhury National University of Singapore (Joint work with Tulika Mitra)
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
CS 5150 Software Engineering Lecture 22 Reliability 3.
Compositional Verification for System-on-Chip Designs SRC Student Symposium Paper 16.5 Nishant Sinha Edmund Clarke Carnegie Mellon University.
Model Checking Lecture 1: Specification Tom Henzinger.
Agenda  Quick Review  Finish Introduction  Java Threads.
Software Verification 1 Deductive Verification Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut.
Parasoft : Improving Productivity in IT Organizations David McCaw.
Compiler Design (40-414) Main Text Book:
An Operational Approach to Relaxed Memory Models
runtime verification Brief Overview Grigore Rosu
Specifying Multithreaded Java semantics for Program Verification
David Harel, Robby Lampert, Assaf Marron, Gera Weiss
All You Ever Wanted to Know About Dynamic Taint Analysis & Forward Symbolic Execution (but might have been afraid to ask) Edward J. Schwartz, Thanassis.
Model Checking and Its Applications
Rich Model Toolkit – An Infrastructure for Reliable Computer Systems
Presentation transcript:

On Concurrency Idioms and their Effect on Program Analysis Weizmann Institute of Science Guy Katz and David Harel

Overview Program analysis: verification, repair, synthesis, etc Very desirable, but very difficult ◦ State explosion How can we make analysis more scalable? 2

Improving Scalability Traditional focus: more efficient algorithms ◦ Symbolic model checking ◦ Abstraction / refinement ◦ Compositional verification ◦ And many others Our focus: how to choose the modeling language in a way that improves scalability A design for analysis approach 3

Choosing a Computational Model 4

Our Goal 5 Focus on individual concurrency idioms ◦ Idioms define inter-thread communication Which idioms are amenable to analysis? When? Retain just enough concurrency: keep things simple! Idiom A Idiom B Idiom C Idiom D Idiom E Easy to analyze

Example: Program Repair

Program Repair A bug is found in existing software. Now what? Manual repair is difficult Automation is much needed 7

Repair Using Blocking Blocking: threads prohibit actions by other threads Very useful in repair Safety bugs: something bad happens ◦ Use blocking to prevent erroneous runs Liveness bugs: good things may never happen ◦ Use blocking to steer the execution towards good states Patches are non-intrusive 8 "Non-Intrusive Repair of Safety and Liveness Violations in Reactive Programs", TCCI, 2014

Some states are marked bad Finally, add a thread (“patch”) that blocks these edges Simple Safety Repair

Additional Topics Compositional verification ◦ In some cases, simple idioms facilitate assume/guarantee reasoning ◦ Can even allow for automation (see talk later today) Succinctness ◦ Simple idioms are enough to write small programs ◦ Just as strong as very liberal models Automatic optimization of the program ◦ Relax certain synchronization constraints, while maintaining the program’s semantics 10

11 Thank You!