Survey on Trace Analyzer (2) Hong, Shin 2015-10-201/34Survey on Trace Analyzer (2) KAIST.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Automatic Verification Book: Chapter 6. How can we check the model? The model is a graph. The specification should refer the the graph representation.
Modeling and Analyzing Periodic Distributed Computations Anurag Agarwal Vijay Garg Vinit Ogale The University.
M ODEL CHECKING -Vasvi Kakkad University of Sydney.
Partial Order Reduction: Main Idea
Runtime Verification Ali Akkaya Boğaziçi University.
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.
Planning based on Model Checking Dept. of Information Systems and Applied CS Bamberg University Seminar Paper Svetlana Balinova.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Virtual Time “Virtual Time and Global States of Distributed Systems” Friedmann Mattern, 1989 The Model: An asynchronous distributed system = a set of processes.
Temporal Logic and the NuSMV Model Checker CS 680 Formal Methods Jeremy Johnson.
CS6133 Software Specification and Verification
/ PSWLAB Efficient Decentralized Monitoring of Safety in Distributed System K Sen, A Vardhan, G Agha, G Rosu 20 th July 2007 Presented by.
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
1 Temporal Logic u Classical logic:  Good for describing static conditions u Temporal logic:  Adds temporal operators  Describe how static conditions.
The Software Model Checker BLAST by Dirk Beyer, Thomas A. Henzinger, Ranjit Jhala and Rupak Majumdar Presented by Yunho Kim Provable Software Lab, KAIST.
Ordering and Consistent Cuts Presented By Biswanath Panda.
Distributed Systems Fall 2009 Logical time, global states, and debugging.
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Real-Time System Requirements & Design Specs Shaw - Chapters 3 & 4 Homework #2: 3.3.1, 3.4.1, Add Error states to Fig 4.1 Lecture 4/17.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
1 Temporal Logic-Overview FM Temporal Logic u Classical logic: Good for describing static conditions u Temporal logic: Adds temporal operators Describe.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Thread-modular Abstraction Refinement Thomas A. Henzinger, et al. CAV 2003 Seonggun Kim KAIST CS750b.
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
Analysis of Concurrent Software Models Using Partial Order Views Qiang Sun, Yuting Chen,
Safety-Critical Systems 5 Testing and V&V T
1 Efficient Dependency Tracking for Relevant Events in Shared Memory Systems Anurag Agarwal Vijay K. Garg
“Virtual Time and Global States of Distributed Systems”
CIS 842: Specification and Verification of Reactive Systems Lecture 1: Course Overview Copyright 2001, Matt Dwyer, John Hatcliff, and Radu Iosif. The.
Distributed Systems Fall 2010 Logical time, global states, and debugging.
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
Case Studies of POTA Hong, Shin / 38
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems Trace Verification for Parallel Systems Vijay.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
September 1999Compaq Computer CorporationSlide 1 of 16 Verification of cache-coherence protocols with TLA+ Homayoon Akhiani, Damien Doligez, Paul Harter,
Boolean Programs: A Model and Process For Software Analysis By Thomas Ball and Sriram K. Rajamani Microsoft technical paper MSR-TR Presented by.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems On Building Reliable Concurrent Systems Vijay.
Distributed Systems Lecture 6 Global states and snapshots 1.
Complexity of Compositional Model Checking of Computation Tree Logic on Simple Structures Krishnendu Chatterjee Pallab Dasgupta P.P. Chakrabarti IWDC 2004,
Basic concepts of Model Checking
Formal methods: Lecture
Program Synthesis is a Game
runtime verification Brief Overview Grigore Rosu
Efficient Decentralized Monitoring of Safety in Distributed Systems
Koushik Sen Abhay Vardhan Gul Agha Grigore Rosu
Monitoring Programs using Rewriting
Detecting Temporal Logic Predicates on Distributed Computations
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Reachability testing for concurrent programs
Software Verification and Validation
Software Verification and Validation
Producing short counterexamples using “crucial events”
Translating Linear Temporal Logic into Büchi Automata
Software Verification and Validation
Predicate Abstraction
Runtime Safety Analysis of Multithreaded Programs
Program correctness Branching-time temporal logics
Hints for Building Self-. Systems Vijay K
Jenhui Chen Office number:
Presentation transcript:

Survey on Trace Analyzer (2) Hong, Shin /34Survey on Trace Analyzer (2) KAIST

Table of Contents  Introduction  Motivation  Simulation Trace Model  JMP A X  POTA  Further Study  References  Discussion /34 Survey on Trace Analyzer (2) KAIST

Introduction1/4  The importance of Software is getting increased.  Quality assurance of the software is very important today.  Software are becoming more complex.  Concurrency with a large number of components  To assure correctness of a software,  Traditional Testing  Formal verification /34 Survey on Trace Analyzer (2) KAIST

Introduction2/4  Traditional Testing  Can not prove the correctness of a software  Costs a lot of time  Model Checking  Labor-some process  Hard to assure the correctness of executable code  Costs a lot of time These are generally infeasible for a system with a large number of components and concurrency such as SoC /34 Survey on Trace Analyzer (2) KAIST

Introduction3/4  Trace Analyzer  Specify requirements in formal language.  Extract status of process while a target program is executing.  Verify whether the trace is satisfied against a given formal requirement.  Advantages  No labor-some job is needed.  Formal specifications can be used.  Possible to verify executable program /34 Survey on Trace Analyzer (2) KAIST

Introduction 4/4 Previously, TemporalROVER LTL, MTL was used. Java Path Explorer LTL was used.  Detect existing error in current executions. What about Java Path Explorer’s error pattern analysis? Deadlock analysis, Data race analysis /34 Survey on Trace Analyzer (2) KAIST

Motivation1/6  Example : Landing airplane when the plane is landing, landing has been approved and radio signal is live /34 Survey on Trace Analyzer (2) KAIST

Motivation2/6 int landing=0, approved=0, radio=1 ; void thread1{ askLandingApproval() ; if (approved ==1) { landing=1; doLanding() ; landing=0; else printf(“Landing is not approved”);} void askLandingApproval() { if (radio == 0) approved = 0 ; else approved=1;} void thread2 { while(1) if (time_out) radio=0;} A bug exists /34 Survey on Trace Analyzer (2) KAIST

Motivation3/6 In most cases 1)landing=0;radio=1;approved=0 2)if (radio == 1) 3)approved = 1 4)landing = 1 5)landing = 0 6)if (time_out) 7)radio = 0 ; Successful execution trace /34 Survey on Trace Analyzer (2) KAIST

Motivation4/6 1)landing=0;1)if (time_out) 2)radio=1; 2)radio = 0 ; 3)approved=0; 4)if (radio==0) 5)approved=1; 6)landing=1 ;  Check whether every trace from asynchronous product of two traces is satisfied with given requirement /34 Survey on Trace Analyzer (2) KAIST

Motivation5/6 1)landing=0; 2)radio=1; 3)approved=0; 4)if (radio==1) 5)approved=1; 6)landing=1 ; 7)if (time_out) 8)radio = 0 ;  Partial order traces can be used to simulate some total order trace /34 Survey on Trace Analyzer (2) KAIST

Motivation6/6 (1) Specify formal requirement of a system. (2) Extract interesting temporal relations between processes as partial order traces. (3) Create partial order trace with respect to extracted information. (4) Check whether the model satisfies the requirement or not (simulating total order traces) /34 Survey on Trace Analyzer (2) KAIST

Simulation Trace Model1/5 For two distinguishable events e and f, e happens before f if and only if (1) e occurs before f in the same process. (2) e is sending a message and f is a receiving of that message. (3) There exist e happens before g and g happens before f.  Events in the same process are totally ordered and events between different processes are partially ordered /34 Survey on Trace Analyzer (2) KAIST

Simulation Trace Model2/5 int x = 0 ; int y = 0 ; lock a ; void thread1 { a.acquire() ; x = 1 ; x = 2 ; a.release() ; } void thread2 { y = 1 ; a.acquire() ; y = 3 ; y = 4 ; a.release() ; } /34 Survey on Trace Analyzer (2) KAIST

Simulation Trace Model 3/5 int x = 0 ; int y = 0 ; lock a ; void thread1 {void thread2 { y = 1 ; a.acquire() ; x = 1 ; x = 2 ;a.acquire() ; a.release() ; a.acquire() ; }y = 3 ; y = 4 ; a.release() ; } /34 Survey on Trace Analyzer (2) KAIST

Simulation Trace Model 4/5  Vector clocks  Represent the happen before relation  A vector clock assigns timestamps to events such that the partial order relation between events can be determined by using the timestamps. Given a compuation G on n process v : V(G) → N n such that for all events e and f, e happens before f if and only if e.v ≤ f.v /34 Survey on Trace Analyzer (2) KAIST

Simulation Trace Model5/5 int x = 0 ; int y = 0 ; lock a ; void thread1{[1,0][0,1] void thread2 { [0,2] y = 1 ; a.acquire() ;[2,0] x = 1 ;[3,0] x = 2 ;[4,0] a.release() ;[5,0] [2,3]a.acquire() ; }[2,4]y = 3 ; [2,5]y = 4 ; [2,6]a.release() ; } /34 Survey on Trace Analyzer (2) KAIST

JMP A X1/3  Java MultiPathExplorer, JMP A X  Extend Java PathExplorer  Combine testing and formal methods techniques.  Possible to reveal errors in multithreaded programs that are hard to detect by observing successful executions /34 Survey on Trace Analyzer (2) KAIST

JMP A X2/ /34 Survey on Trace Analyzer (2) KAIST

JMP A X3/3  Use past time LTL to specify safety properties.  Predict safety errors from successful executions.  Check a simulation trace model in a exhaustive way. O(|E| n ) where E is events in each process and n is the number of processes /34 Survey on Trace Analyzer (2) KAIST

POTA1/11  Partial Order Trace Analyzer  Create a model from partial order traces  State Explosion - Regular CTL - Computation slicing /34 Survey on Trace Analyzer (2) KAIST

POTA2/ /34 Survey on Trace Analyzer (2) KAIST

POTA3/11  The order on events must be a partial order.  For a directed graph G that represent the computation, A global state(consistent cut) on G as - a subset of vertices s.t. if the subset contains a vertex then it contains all its incoming neighbors. - denoted by the set of its frontier. - ⊥ i for initial state of process i, ⊤ i for final state of process i C (G) is the set of global states on the graph G. - it forms a distributive lattice under subset relation /34 Survey on Trace Analyzer (2) KAIST

POTA4/ /34 Survey on Trace Analyzer (2) KAIST

POTA5/11  Predicate Detection problem Given a distributive lattice L =( C (G), ⊆ ) and a temporal logic predicate p, decide whether L,{ ⊥ } ⊧ p holds or not /34 Survey on Trace Analyzer (2) KAIST

POTA6/11  A predicate is regular if, given two consistent cuts that satisfy the predicate, the consistent cuts obtained by their set union and set intersection also satisfy the predicate. Predicate p is regular iff ( C satisfy p ) and ( D satisfy p )  ( C ∩ D satisfy p ) and ( C ∪ D satisfy p ) /34 Survey on Trace Analyzer (2) KAIST

POTA7/11  Temporal logic : safety and liveness property  Computational Tree Logic(CTL)  Path quantifier A: all full pathsE: some full path  Temporal logicG:alwaysF:eventuallyX:next time  Non-temporal predicates : λ : C → P (AP) where AP is atomic propositions AG(p), AF(p), EG(p), EF(p), EX(p), EX(p)[i], AX(p) where p is a non-temporal predicate /34 Survey on Trace Analyzer (2) KAIST

POTA8/ /34 Survey on Trace Analyzer (2) KAIST

POTA9/ /34 Survey on Trace Analyzer (2) KAIST

POTA10/11  RCTL  A sublogic of CTL contains regular non-temporal logics and regular temporal logic. If p is a regular non-temporal logic then EF(p), AG(p),EG(p), and EX(p)[j] is also regular. Express both safety property and liveness property /34 Survey on Trace Analyzer (2) KAIST

POTA11/11  Computation Slice  All consistent cuts of a computation that satisfy a given predicate.  A slice of a computation with respect to a predicate exists iff the set of global states that satisfy the predicate forms a sub- lattice of the lattice of global states  As long as predicate is regular, there exists efficient algorithm to compute the slice for regular predicate. O(|p|n 2 |E|) /34 Survey on Trace Analyzer (2) KAIST

Further study POTA - Regular predicates - Detection of global predicate More survey on trace analyzer /34 Survey on Trace Analyzer (2) KAIST

References  [1] Leslie Lamport, Time, Clocks, and the Ordering of Events in a Distributed System,  [2] V K.Garg et al, On Slicing a Distributed Computation,  [3] K Sen et al, Runtime Safety Analysis of Multithreaded Programs,  [4] A Sen&V K. Garg, Partial Order Trace Analyzer for Distributed Programs,  [5] A Sen&V K.Garg, Formal Verification of Simulation Traces Using Computation Slicing, /34 Survey on Trace Analyzer (2) KAIST

Discussion /34 Survey on Trace Analyzer (2) KAIST