SPADE Verification of Multithreaded Dynamic and Recursive Programs Gaël

Reviews
Shared by: Mensah Bansu
Stats
views:
1
rating:
not rated
reviews:
0
posted:
4/15/2009
language:
pages:
0
SPADE Verification of Multithreaded Dynamic and Recursive Programs Gaël Patin, Mihaela Sighireanu, Tayssir Touili LIAFA, CNRS & Univ. Paris 7, France Goal Verify programs with: • Procedure calls (possibly recursive) • Dynamic creation of parallel processes • Communication between parallel processes (handshaking by blocking send and receive actions) Undecidable (even with finite-domain variables) This Work: Approximate analysis techniques We need to: Define accurate models: •Procedure calls, • Communication between parallel processes (handshakings) Find analysis techniques for these models • Dynamic creation of parallel processes, Existing Work • No technique that can deal with all the features • The different models that were considered cannot represent accurately all the features Previous attempts Different proposals based on solving sets of constraints [Müller-Olm, Seidl, Steffen,….] No Synchronisation Synchronisation via locks [Kahloon,….] Synchronisation via locks Previous attempts Constrained Dynamic Pushdown Network (CDPN) [Bouajjani,Müller-Olm,T. 05] Procedure calls, Dynamism ☺ Synchronisation not precisely modeled Communicating PushDown Systems (CPDS) [Bouajjani,Esparza,T. 03] [Qadeer,Rehof 05][Chaki,Clarke,Kidd,Reps,T. 06] Procedure calls, Synchronisation ☺ No Dynamism Previous attempts Process Rewrite Systems (PRS) [Bouajjani,T. 03-05] Procedure calls, Dynamism ☺ Synchronisation not precisely modeled Synchronized PA (SPA) [Bouajjani,Esparza,T. 04] Synchronisation, Dynamism ☺ Procedure calls not precisely modeled This Work • Define a more general model: Synchronized PAD (SPAD) Procedure calls(recursion), Synchronisation,Dynamism ☺ • Define analysis techniques for this model • Bug found in a Bluetooth driver in Windows The model: Synchronised PAD Syntax • Term t ::= 0 | X,Y,… | t.t | t||t • • • • 0 neutral: t.0=0.t=t||0=0||t=t . associative: (t.u).v=t.(u.v) || associative: (t||u)||v=t||(u||v) || commutative: t||u=u||t • Actions: Act • SPAD: = { τ }∪ {a ! , a ? a ∈ Sync } X ⎯b t ; X ⋅ Y ⎯b t ⎯→ ⎯→ Transition Relation ) Basic case: Sequential composition: Prefix rewriting strategy Transition Relation ) Parallel composition: Synchronisation: Good Execution: a! matched with a? only τ This Work Define a more general model: Synchronized PAD (SPAD) Procedure calls(recursion), Synchronisation, Dynamism ☺ • Define analysis techniques for this model • Bug found in a Bluetooth driver in Windows From Programs to SPAD Procedure call: n ⎯⎯⎯→ m call( p ) n⎯ ⎯→ e p .m τ Result return: m ⎯if p returns ri → mi ⎯⎯⎯ ⎯ Termination: ri .m ⎯ ⎯→ m i τ n ⎯τ 0 ⎯→ Dynamic creation: n ⎯ m1 m2 ⎯→ τ Synchronisation by rendez-vous: a? n1 ⎯ a ! n 2 ; m1 ⎯⎯→ m 2 ⎯→ This Work • Define a more general model: Synchronized PAD (SPAD) Recursion, Synchronisation, Dynamism ☺ • Define analysis techniques for this model • Bug found in a Bluetooth driver in Windows Reachability Problem Init ? Bad Init and Bad: Infinite sets of configurations (reachability of a control point) Reachability Problem Init In our modeling: Init and Bad: Infinite sets of terms ? Bad Good − Executions SPAD ( Init , Bad ) = φ ? ExecutionsSPAD ( Init, Bad ) ∩ τ = φ ? * Impossible A( Executions ( Init , Bad )) ∩ τ = φ ? * Executions ( Init , Bad ) ∩ τ * = φ ??? Our Approach Compute over - approximation A( Executions ( Init , Bad )) A( Executions ( Init , Bad )) ∩ τ = φ ? * YES NO Can we extract a real execution? YES NO Refine approximation Computing A( Executions ( Init , Bad )) ? • Characterize Executions ( Init , Bad ) by a set of constraints • Consider an abstract finite elements represent over-approximations of languages of executions ? domain whose • Solve the constraints in this abstract finite domain (an iterative least fixpoint computation terminates) Over-approximation Prefix k Abstraction Domain L = abababc * * α 3 ( L ) = aba ( a + b + c ) Refinable abstractions: Finite abstract domain: Domain of sets of words of length <= 3 α 1 , α 2 , α 3 , ... * α 4 ( L ) = abab ( a + b + c ) Computing A( Executions ( Init , Bad )) ? • Characterize Executions ( Init , Bad ) by a set of constraints • Consider an abstract finite domain whose elements represent over-approximations of languages of executions ? • Solve the constraints in this abstract finite domain (an iterative least fixpoint computation terminates) Over-approximation Characterizing Executions ( Init , Bad ) ? First Problem: Finitely represent infinite sets of terms Term = Tree || X Y X ||Y Infinite sets of terms: Tree automata Tree Automata • A=(Q,F,δ) • δ : X→ q ; .(q,q’) →q ’’ ; ||(q,q’) →q ’’ p’ q’ qX Y p X→q q X Y→p (q,p) → q’ (q’,q) → p’ Tree recognized by p’ (∈Lp' ) Characterizing Executions Executions ( L1 , L2 ) Theorem : If L1 and L2 compatible then Executions ( L1 , L2 ) = Executions no− equivalenc e ( L1 , L2 ) Characterizing Executions Executions ( A1 , A2 ) E ( q, q' ) = Executions ( Lq , Lq ' ) Executions ( A1 , A2 ) = q∈ F 1 q '∈ F2 Υ E ( q, q' ) ? A first constraint Lq ∩Ls ≠ φ ⇒ ε ∈E(q, s) Another constraint t1 ⎯b t 2 ∈ R ⎯→ E ( q, qt1 ) ⋅ b ⋅ E ( qt2 , s ) ⊆ E ( q, s ) q E(q, qt1 ) w1 b E(qt2 , s) w2 s t1 w1.b.w2 t2 E(q, s) One more constraint ⋅ ( q1 , q2 ) → q ∈ A1 and ⋅ ( s1 , s2 ) → s ∈ A2 Lq2 ∩ Ls2 ≠ φ ⇒ E(q1, s1) ⊆ E(q, s) E ( q, s ) q q1 w q2 s1 s s2 w E(q1, s1) A last constraint ⋅ ( q1 , q2 ) → q ∈ A1 and ⋅ ( s1 , s2 ) → s ∈ A2 E (q1, s null 1 ) ⋅ E (q2 , s2 ) ⊆ E ( q, s) E(q, s) q q1 w1 ⋅ w 2 q2 s1 s s2 w w1 2 E(q2, s2 ) E(q1 , s ) null 1 4 more constraints … ……. ……. ……. ……. Characterizing Executions Executions ( A1 , A2 ) E ( q, q' ) = Executions ( Lq , Lq ' ) Executions ( A1 , A2 ) = q∈ F 1 q '∈ F2 Υ E ( q, q' ) ☺ Computing A( Executions ( Init , Bad )) ? ☺ • Characterize Executions ( Init , Bad ) by a set of constraints • Consider an abstract finite domain whose elements represent over-approximations of languages of executions • Solve the constraints in this abstract finite domain (an iterative least fixpoint computation terminates) Over-approximation Executions ( Init , Bad ) ∩ τ * = φ ??? Our Approach Compute over - approximation A( Executions ( Init , Bad )) A( Executions ( Init , Bad )) ∩ τ = φ ? * YES NO Can we extract a real execution? YES NO Refine approximation SPAD model Init Bad Tree Automata (Timbuk lib) - Characterize Paths(Init,Bad) by a set of constraints. - Solve the constraints in the abstract finite domain α (an iterative least fixpoint computation terminates). YES NO MAYBE Paths Prefix length k α Compute α(Paths(Init,Bad)) (internal libs) Experiments and case studies The Bluetooth Driver in Windows • Found automatically two bugs in two versions of a Bluetooth driver in Windows • Need to procedure calls, dynamic process creation, and synchronisation • Previous work guessed the number of parallel threads to discover the bugs!! Java Vector Object • Programs that concurrently create and remove elements of a Java Vector object present a data race because the constructor of the Java Vector class is not atomic [Wand, Stoller 03] • SPADE finds this bug for a progam with unbounded number of threads • SPADE proves that a corrected version of this program is correct Concurrent Insertions in Binary Trees • A buggy program considered in [Chaki,Clarke,Kidd,Reps,Touili’06] • MAGIC found the bug for programs having less than 8 threads • SPADE finds the bug for arbitrary number of threads Conclusion • Define a general model: Synchronized PAD (SPAD) Recursion, Synchronisation, Dynamism ☺ • Define analysis techniques for this model • Bug found in a Bluetooth driver in Windows (without guessing the number of threads in parallel) Questions?

Related docs
David_Spade
Views: 3  |  Downloads: 0
Spade_Cooley
Views: 2  |  Downloads: 0
Calling a Spade a Shovel
Views: 0  |  Downloads: 0
Bucket _ Spade Appeal
Views: 2  |  Downloads: 0
Resume for Kenny Spade
Views: 5  |  Downloads: 0
Kate Spade Yuma Ida Tote - 5 Star Review
Views: 1  |  Downloads: 0
Managers__Let_s_Call_a_Spade_a_Spade_
Views: 0  |  Downloads: 0
premium docs
Other docs by Mensah Bansu
at120
Views: 144  |  Downloads: 0
Holy and Annointed One
Views: 280  |  Downloads: 2
Amazing Grace
Views: 376  |  Downloads: 6
Economics in the MBA Curriculum
Views: 566  |  Downloads: 27
New Medicine Based on ANcient Principles
Views: 326  |  Downloads: 1
Present Possessory Interest
Views: 319  |  Downloads: 8
Tips to Weight Loss Success
Views: 484  |  Downloads: 13
fss4
Views: 180  |  Downloads: 0
Spiller v
Views: 248  |  Downloads: 1
Public Policy and the European Union
Views: 393  |  Downloads: 2
Joy to the World
Views: 164  |  Downloads: 0
Timely completion
Views: 231  |  Downloads: 3
IP Table2
Views: 326  |  Downloads: 10
Holy Ground
Views: 246  |  Downloads: 1