Koushik Sen Abhay Vardhan Gul Agha Grigore Rosu

Slides:



Advertisements
Similar presentations
The Quest for Correctness Joseph Sifakis VERIMAG Laboratory 2nd Sogeti Testing Academy April 29th 2009.
Advertisements

Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Modeling and Analyzing Periodic Distributed Computations Anurag Agarwal Vijay Garg Vinit Ogale The University.
Distributed Snapshots: Determining Global States of Distributed Systems - K. Mani Chandy and Leslie Lamport.
A Survey of Runtime Verification Jonathan Amir 2004.
Cs7120 (Prasad)L22-MetaPgm1 Meta-Programming
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
Runtime Verification Ali Akkaya Boğaziçi University.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
Lecture 8: Asynchronous Network Algorithms
SES Algorithm SES: Schiper-Eggli-Sandoz Algorithm. No need for broadcast messages. Each process maintains a vector V_P of size N - 1, N the number of processes.
Hoare’s Correctness Triplets Dijkstra’s Predicate Transformers
Fast Algorithms For Hierarchical Range Histogram Constructions
LIFE CYCLE MODELS FORMAL TRANSFORMATION
1 Formal Modeling and Analysis of DoS Using Probabilistic Rewrite Theories Gul Agha Michael Greenwald Carl Gunter Sanjeev Khanna Jose Meseguer Koushik.
/ PSWLAB Efficient Decentralized Monitoring of Safety in Distributed System K Sen, A Vardhan, G Agha, G Rosu 20 th July 2007 Presented by.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Beneficial Caching in Mobile Ad Hoc Networks Bin Tang, Samir Das, Himanshu Gupta Computer Science Department Stony Brook University.
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
System Design Research Laboratory Model-based Testing and Monitoring for Hybrid Embedded Systems Li Tan Jesung Kim Oleg Sokolsky Insup Lee University of.
Dependent Types for Reasoning About Distributed Systems Paul Sivilotti - Ohio State Hongwei Xi - Cincinnati.
VESTA: A Statistical Model- checker and Analyzer for Probabilistic Systems Authors: Koushik Sen Mahesh Viswanathan Gul Agha University of Illinois at Urbana-Champaign.
Testing and Monitoring at Penn An Integrated Framework for Validating Model-based Embedded Software Li Tan University of Pennsylvania September, 2003.
Presenter: Chi-Hung Lu 1. Problems Distributed applications are hard to validate Distribution of application state across many distinct execution environments.
Scientific Computing By: Fatima Hallak To: Dr. Guy Tel-Zur.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Survey on Trace Analyzer (2) Hong, Shin /34Survey on Trace Analyzer (2) KAIST.
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
Checking Reachability using Matching Logic Grigore Rosu and Andrei Stefanescu University of Illinois, USA.
Advanced Topics in Software Engineering Marjan Sirjani Tehran University Faculty of Engineering ECE Department Tehran,
Safety-Critical Systems 5 Testing and V&V T
Allen Linear Temporal Logic Translation to LTL and Monitor Synthesis Grigore Rosu (University of Illinois at U-C) Saddek Bensalem (VERIMAG)
Constraints Assisted Modeling and Validation Presented in CS294-5 (Spring 2007) Thomas Huining Feng Based on: [1]Constraints Assisted Modeling and Validation.
Parallel and Distributed Systems Laboratory Paradise: A Toolkit for Building Reliable Concurrent Systems Trace Verification for Parallel Systems Vijay.
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
RV-ECU: Certifiable Runtime Verification for Automobiles Grigore Rosu
Bootstrapped Optimistic Algorithm for Tree Construction
1/20 Arrays Changki PSWLAB Arrays Daniel Kroening and Ofer Strichman Decision Procedure.
Introduction to Computer Programming using Fortran 77.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Adaptive Choreographies Joint work with Mila Dalla Preda, Jacopo Mauro and Maurizio.
Software Engineering Algorithms, Compilers, & Lifecycle.
Formal Modeling and Analysis of RAMP Transaction Systems Si Liu, Peter Csaba Ölveczky, Muntasir Raihan Rahman, Jatin Ganhotra, Indranil Gupta, and José.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Distributed Systems Lecture 6 Global states and snapshots 1.
SDN Network Updates Minimum updates within a single switch
Weakest Precondition of Unstructured Programs
The Echo Algorithm The echo algorithm can be used to collect and disperse information in a distributed system It was originally designed for learning network.
Deadlock Freedom by Construction
runtime verification Brief Overview Grigore Rosu
Parametric Trace Slicing and Monitoring
Lecture 9: Asynchronous Network Algorithms
Efficient Decentralized Monitoring of Safety in Distributed Systems
Monitoring Programs using Rewriting
Towards Next Generation Panel at SAINT 2002
Generating Optimal Linear Temporal Logic Monitors by Coinduction
Grigore Rosu Mahesh Viswanathan
Statistical Model-Checking of “Black-Box” Probabilistic Systems VESTA
Gul Agha Michael Greenwald Carl Gunter Sanjeev Khanna
On Statistical Model Checking of Stochastic Systems
Gul Agha Michael Greenwald Carl Gunter Sanjeev Khanna
Breakpoints and Halting in Distributed Systems
Dongyun Jin, Patrick Meredith, Dennis Griffith, Grigore Rosu
An Introduction to Linux
Towards a Unified Theory of Operational and Axiomatic Semantics
Ch 17 - Binding Protocol Addresses
Chapter 2: Analysis and Verification of Non-Real-Time Systems
Runtime Safety Analysis of Multithreaded Programs
Programming Languages and Compilers (CS 421)
CIS825 Lecture 5 1.
Presentation transcript:

Koushik Sen Abhay Vardhan Gul Agha Grigore Rosu On Specifying and Monitoring Epistemic Properties of Distributed Systems Koushik Sen Abhay Vardhan Gul Agha Grigore Rosu University of Illinois at Urbana-Champaign, USA

Software Reliability Software Validation Rigorous and Complete Methods Model Checking Theorem Proving Infeasible for large-scale open distributed systems (Actors) Non-determinism and Asynchrony Testing Widely used Ad-Hoc Good Test Coverage Required Runtime Monitoring Adds rigor to Testing 11/13/2018

Centralized Monitoring Approach Monitoring – Use Formal Methods in Testing Synthesize light-weight Monitors from Specification Automata, Rewriting-based Monitors Instrument code to insert monitors Execute instrumented code Distributed System Monitoring Global state is distributed For every state update send state to a central monitor Central monitor assembles them to form consistent execution traces Sequence of global states Monitor execution traces 11/13/2018

An Example Mobile node a requests certain value from node b b computes the value and sends it to a Property: no node receives a value from another node to which it had not sent a request 11/13/2018

Centralized Monitoring Example “If a receives a value from b then b calculated the value after receiving request from a” valRcv → (valComputed  valReq) valReq valReq valComputed  valReq valRcv → (valComputed  valReq) (valComputed  valReq) b valComputed a valReq valRcv 11/13/2018

Decentralized Monitoring Approach “If a receives a value from b then b calculated the value after receiving request from a” valRcv → @b((valComputed  @a(valReq))) valComputed  @a(valReq) @a(valReq) (valComputed  @a(valReq)) b valComputed a valReq valRcv valReq valRcv → @b((valComputed  @a(valReq))) 11/13/2018

Past time Distributed Temporal Logic (pt-DTL) Based on epistemic logic [Aumann76][Meenakshi et al. 00] Properties with respect to a process, say p 11/13/2018

Leader Election Example “If a leader is elected then if the current process is a leader then, at its knowledge, none of the other processes (b and c) is a leader” elected → (state=leader → (@b(state ≠ leader) Æ @c(state ≠ leader))) 11/13/2018

Leader Election (Stronger Property) Every process must know the name of the process that has been elected leader elected → (let k=leaderName in (@b(leaderName = k) Æ @c(leaderName = k))) 11/13/2018

Leader Election (Open System) There are arbitrary number of processes whose names are not known before-hand elected → (let k=leaderName in @8 {j | j  i}(leaderName = k)) 11/13/2018

Extended Distributed Temporal Logic (xDTL) Suitable for Open Distributed Systems (Actors) Ids of all processes are not known before-hand Quantification over processes All processes satisfying a predicate @8 {j | pred(j)} Some process satisfying a predicate @9 {j | pred(j)} Value-binding (Increases Expressive Power) let k = x in F To refer to values in remote states 11/13/2018

xDTL syntax Fi ::= true | false | P(Ei) | : Fi | Fi Æ Fi propositional | ¯ Fi | ¡ Fi | Fi | Fi S Fi temporal | @8 JFj | @9 JFj epistemic | let k = Ei in Fi binding Ei ::= c | vi 2 Vi | f(Ei) | k functional | @jEj epistemic 11/13/2018

Interpretation of @8 JEj at process i m4 m1 m2 p2 @ {1}(x=9) m3 p1 x=7 x=9 11/13/2018

Monitoring Algorithm Requirements Monitoring using KnowledgeVector Should be fast so that online monitoring is possible Little memory overhead Additional messages sent should be minimal; ideally zero Monitoring using KnowledgeVector Maintain knowledge of global state at each process Update knowledge with incoming messages Attach knowledge with outgoing messages At each process monitor local knowledge 11/13/2018

Conclusion Decentralized Technique to effectively verify open distributed systems at runtime No extra message over-head for monitoring xDTL can express interesting and useful safety properties of distributed systems How to instrument code running on all processes so that monitoring can be done? 11/13/2018