A Technique for Parallel Reachability Analysis of Java Programs Raghuraman R. Sridhar Iyer G. Sajith.

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

Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Distributed Snapshots: Determining Global States of Distributed Systems - K. Mani Chandy and Leslie Lamport.
Programming in Occam-pi: A Tutorial By: Zain-ul-Abdin
CS 267: Automated Verification Lecture 8: Automata Theoretic Model Checking Instructor: Tevfik Bultan.
Concurrency: Deadlock and Starvation Chapter 6. Deadlock Permanent blocking of a set of processes that either compete for system resources or communicate.
Chapter 6 Concurrency: Deadlock and Starvation Operating Systems: Internals and Design Principles, 6/E William Stallings Patricia Roy Manatee Community.
1 Model checking. 2 And now... the system How do we model a reactive system with an automaton ? It is convenient to model systems with Transition systems.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
6. Deadlocks 6.1 Deadlocks with Reusable and Consumable Resources
Testing Concurrent/Distributed Systems Review of Final CEN 5076 Class 14 – 12/05.
Parallel and Distributed Simulation Time Warp: Basic Algorithm.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
Guoliang Jin, Linhai Song, Wei Zhang, Shan Lu, and Ben Liblit University of Wisconsin–Madison Automated Atomicity- Violation Fixing.
Efficient Reachability Analysis for Verification of Asynchronous Systems Nishant Sinha.
Iterative Context Bounding for Systematic Testing of Multithreaded Programs Madan Musuvathi Shaz Qadeer Microsoft Research.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
CS444/CS544 Operating Systems Synchronization 2/16/2006 Prof. Searleman
PARALLEL PROGRAMMING with TRANSACTIONAL MEMORY Pratibha Kona.
1 L49 Multithreading (1). 2 OBJECTIVES  What threads are and why they are useful.  How threads enable you to manage concurrent activities.  The life.
1 Concurrency: Deadlock and Starvation Chapter 6.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
A Parallel, Real-Time Garbage Collector Author: Perry Cheng, Guy E. Blelloch Presenter: Jun Tao.
DETECTION OF POTENTIAL DEADLOCKS AND DATARACES ROZA GHAMARI Bogazici UniversityMarch 2009.
Formal Techniques for Verification Using SystemC By Nasir Mahmood.
Concurrency: Deadlock and Starvation Chapter 6. Goal and approach Deadlock and starvation Underlying principles Solutions? –Prevention –Detection –Avoidance.
1 Concurrency: Deadlock and Starvation Chapter 6.
Instructore: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Concurrent and.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11: :30 AM.
1 Concurrent Languages – Part 1 COMP 640 Programming Languages.
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
111 © 2002, Cisco Systems, Inc. All rights reserved.
CS6133 Software Specification and Verification
Dynamic Analysis of Multithreaded Java Programs Dr. Abhik Roychoudhury National University of Singapore.
Synchronization Transformations for Parallel Computing Pedro Diniz and Martin Rinard Department of Computer Science University of California, Santa Barbara.
Static Program Analyses of DSP Software Systems Ramakrishnan Venkitaraman and Gopal Gupta.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
1 Deadlock. 2 Concurrency Issues Past lectures:  Problem: Safely coordinate access to shared resource  Solutions:  Use semaphores, monitors, locks,
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Concurrency & Dynamic Programming.
CSCI1600: Embedded and Real Time Software Lecture 11: Modeling IV: Concurrency Steven Reiss, Fall 2015.
Debugging Threaded Applications By Andrew Binstock CMPS Parallel.
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems Trace Verification for Parallel Systems Vijay.
Effective Static Deadlock Detection Mayur Naik* Chang-Seo Park +, Koushik Sen +, David Gay* *Intel Research, Berkeley + UC Berkeley.
CSE 153 Design of Operating Systems Winter 2015 Midterm Review.
CS333 Intro to Operating Systems Jonathan Walpole.
Theory-Aided Model Checking of Concurrent Transition Systems Guy Katz, Clark Barrett, David Harel New York University Weizmann Institute of Science.
Effective Static Deadlock Detection Mayur Naik (Intel Research) Chang-Seo Park and Koushik Sen (UC Berkeley) David Gay (Intel Research)
Parallel and Distributed Simulation Deadlock Detection & Recovery: Performance Barrier Mechanisms.
Operating Systems Unit 4: – Dining Philosophers – Deadlock – Indefinite postponement Operating Systems.
Diagnostic Information for Control-Flow Analysis of Workflow Graphs (aka Free-Choice Workflow Nets) Cédric Favre(1,2), Hagen Völzer(1), Peter Müller(2)
Deadlock. Stepping on each other’s feet - I Thread T 1 b1:= allocate(); b2:= allocate(); …… release(b1); release(b2); Thread T 2 b1:= allocate(); b2:=
ICS Deadlocks 6.1 Deadlocks with Reusable and Consumable Resources 6.2 Approaches to the Deadlock Problem 6.3 A System Model –Resource Graphs –State.
Verification of Data-Dependent Properties of MPI-Based Parallel Scientific Software Anastasia Mironova.
Formal methods: Lecture
Parallel and Distributed Simulation Techniques
Effective Data-Race Detection for the Kernel
Chapter 7 – Deadlock and Indefinite Postponement
Rajkishore Barik Efficient Computation of May-Happen-in-Parallel Information for Concurrent Java Programs Rajkishore Barik
Concurrency Specification
Over-Approximating Boolean Programs with Unbounded Thread Creation
More on Thread Safety CSE451 Andrew Whitaker.
Thread Synchronization
Parallel and Distributed Simulation
Process Description and Control
Exercise (9).
CS561 Computer Architecture Hye Yeon Kim
Presentation transcript:

A Technique for Parallel Reachability Analysis of Java Programs Raghuraman R. Sridhar Iyer G. Sajith

CIT 2000 Outline of Talk Errors in Concurrent Programs Reachability Analysis A Technique for Parallel RA Experimental Results Conclusions

CIT 2000 Errors in Concurrent Programs Non-determinism and synchronization involved Data access errors (violation of mutex) Synchronization errors (deadlocks- waiting for shared variables, mesgs) Temporal errors (calls to terminated pgm components)

CIT 2000 Reachability Analysis Systematic enumeration of all possible global states of program execution Technique: Program listing-> Generate abstract representation -> Generate reachability graph-> Analyse for errors-> Error listing

CIT 2000 RA (contd.)

CIT 2000 Inefficiencies in RA - Exponential complexity (N T ) - Limited capacity to deal with dynamic references - Might report spurious errors + State Explosion tackled by Apportioning Technique [Iyer 98] - But time complexity remains

CIT 2000 The Parallel RA Technique Mitigates the time complexity Generate state-transition graphs for each thread Generate cross-product of all state- transition graphs Discard invalid tuples from the cross- product

CIT 2000 System Model All threads created at start of program execution (each thread at state) All threads have the same priority Program terminates when all threads reach their state Synchronization between threads is by using locks

CIT 2000 Algorithm

CIT 2000 An Example Thread 1Thread 2 Consider an example application with 2 threads of execution.

CIT 2000 Example (contd.) Construct state-transition graph for each thread T i (all other threads at their entry points) in parallel

CIT 2000 Example (contd.) Construct R G as cross-product of all R i s. - R G might contain tuples corresponding to multiple threads holding the same lock (R G an arbitrary cross-product): eg. Tuple 2

CIT 2000 Example (contd.) Detect invalid tuples and discard them Remaining tuples correspond to traditional R G

CIT 2000 Experimental Results

CIT 2000 Experimental Results (Contd.)

CIT 2000 Conclusions The technique is safe for all programs in the chosen model Significant reduction in time from to P Where T=no. of threads, N=no of states in each thread, K= no. of locks and P=no. of processors.