verification and synthesis of symmetric uni rings for
play

Verification and Synthesis of Symmetric Uni-Rings for Leads-To - PowerPoint PPT Presentation

Verification and Synthesis of Symmetric Uni-Rings for Leads-To Properties Ali Ebnenasir aebnenas@mtu.edu Department of Computer Science College of Computing Michigan Technological University Houghton MI 49931 http://asd.cs.mtu.edu/


  1. Verification and Synthesis of Symmetric Uni-Rings for Leads-To Properties Ali Ebnenasir aebnenas@mtu.edu Department of Computer Science College of Computing Michigan Technological University Houghton MI 49931 http://asd.cs.mtu.edu/

  2. Parameterized Distributed Systems (PDS) Family 2: just one process Dijkstra’s Token Ring for mutual exclusion: 𝛒 2 : Template process 2 P N-1 P 0 Action 0 : x 0 = x N-1 Γ  x 0 := x N-1 + 1 x N-1 x 0 Read/Write - Process P i has x i ∈ β„€ N = {0, 1, …, N-1} P 1 - N denotes the total number of processes - Addition and subtraction are done in modulo N x 1 𝛒 1 : Template process 1 Q = βˆ€ i ∈ β„€ N : ( (x i -1 = x i ) ∨ (x i -1 = x i +1)) Action i : x i β‰  x i-1 Γ  x i := x i-1 Legend : . . . Process/Node Family 1: N-1 symmetric processes Read from

  3. Significance From System on Chip, to multithreaded programs and large scale network protocols.

  4. Example: Agreement on Parity ● Parity on a fully symmetric unidirectional ring (uni-ring); i.e., k =1 ● Ring size: N>2, arbitrary but finite; i.e., 𝛒 1 = {P 0 , …, P N-1 } ● Process P i : has a variable x i capturing set of writeable variables x i ∈ β„€ 4 = {0, 1, 2, 3} ● ● Topology: uni-ring (read/write restrictions) read x i -1 and x i ; write x i ● ● Conjunctive state predicate Q = βˆ€ i ∈ β„€ N : ((|x i -1 - x i | mod 2) = 0) ● Template Process: P 0 x 0 P 1 A i : (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 x 1 x N-1 P 2 x 2

  5. Proposed Method Most existing methods for verification and synthesis: Correctness of a finite abstract model β‡’ Correctness of PDS We propose a method based on characterization of global failures in local state spaces of template processes in a topology-specific fashion. Absence of local characterizations β‡’ Correctness of PDS

  6. Topology and Property-Specific Synthesis of R ↝ Q Variable x i and its domain Parameterized Actions Synthesize Algorithm for Uni-Ring R = βˆ€ i ∈ β„€ N : r(x i -1 - x i ) Satisfies R ↝ Q for an arbitrary (but finite) Q = βˆ€ i ∈ β„€ N : q(x i -1 - x i ) # of processes Specifications: Linear Temporal Logic ● Leads-To: ☐ ( R β‡’ β—‡ Q ) ≣ ( R ↝ Q ) ● E.g., ( true ↝ Q ) ● Note : From any global state in R, the entire ring eventually reaches a global state in Q ; i.e., global liveness.

  7. Failures of Leads-To in PDS β€’ Reaching global deadlocks and/or global livelocksfrom R β€’ Verification of deadlock-freedom is decidable. [ICDCS 2012] [ICDCS 2012] A. Farahat and A. Ebnenasir, β€œ Local reasoning for global convergence of parameterized rings ,” in IEEE International Conference on Distributed Computing Systems (ICDCS), 2012, pp. 496–505.

  8. Livelock-Freedom in Uni-Rings ● Theorem 1: Verifying livelock-freedom in symmetric uni-rings is undecidable, even for deterministic , constant-space and self-disabling processes. [SSS’13, ACM TOCL’19] ● Self-disabling process: once it executes an action, it disables itself until enabled again by its predecessor. β€’ Corollary: Verifying R ↝ Q in symmetric uni-rings is undecidable. (Proof in the paper) [SSS’13] Alex Klinkhamer and Ali Ebnenasir, Verfiying Livelock Freedom of Parameterized Rings and Chains , 15th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2013). [ACM TOCL’19] A. Klinkhamer and A. Ebnenasir, β€œ On the verification of livelock-freedom and self-stabilization on parameterized rings ,” ACM Transactions on Computational Logic, vol. 20, no. 3, pp. 1–36, 2019.

  9. Local Characterization of Global Livelocks in Uni-Rings: Can we detect and construct global livelocks just by analyzing the local state transition system of the template process?

  10. Action Graphs ● Protocols can be represented as labeled directed multi-graphs in the local state space of the template process Vertices : values in the domain of x i ∈ {0, 1, 2, 3} ● Arcs : each arc (a, b, c) represents a local update of x i to c if x i-1 =a and x i = b ● E.g., ( 0 , 1 , 2 ) means if x i-1 =0 and x i = 1 then update x i to 2 ● (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 1 |3 0|2 0 2 1 3 1|3 0|2

  11. Action Graphs ● Protocols can be represented as labeled directed multi-graphs in the local state space of the template process Vertices : values in the domain of x i ∈ {0, 1, 2, 3} ● Arcs : each arc (a, b, c) represents a local update of x i to c if x i-1 =a and x i = b ● E.g., ( 0 , 1 , 2 ) means if x i-1 =0 and x i = 1 then update x i to 2 ● (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 ( 0 , 1 , 2 ) 1 |3 0|2 0 2 1 3 1|3 0|2

  12. Action Graphs ● Protocols can be represented as labeled directed multi-graphs in the local state space of the template process Vertices : values in the domain of x i ∈ {0, 1, 2, 3} ● Arcs : each arc (a, b, c) represents a local update of x i to c if x i-1 =a and x i = b ● E.g., ( 0 , 1 , 2 ) means if x i-1 =0 and x i = 1 then update x i to 2 ● (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 ( 0 , 1 , 2 ) x i-1 1 |3 0|2 0 2 1 3 1|3 0|2

  13. Action Graphs ● Protocols can be represented as labeled directed multi-graphs in the local state space of the template process Vertices : values in the domain of x i ∈ {0, 1, 2, 3} ● Arcs : each arc (a, b, c) represents a local update of x i to c if x i-1 =a and x i = b ● E.g., ( 0 , 1 , 2 ) means if x i-1 =0 and x i = 1 then update x i to 2 ● (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 ( 0 , 1 , 2 ) x i x i-1 1 |3 0|2 0 2 1 3 1|3 0|2

  14. Action Graphs ● Protocols can be represented as labeled directed multi-graphs in the local state space of the template process Vertices : values in the domain of x i ∈ {0, 1, 2, 3} ● Arcs : each arc (a, b, c) represents a local update of x i to c if x i-1 =a and x i = b ● E.g., ( 0 , 1 , 2 ) means if x i-1 =0 and x i = 1 then update x i to 2 ● (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 ( 0 , 1 , 2 ) x i x i-1 set x i to 1 |3 0|2 0 2 1 3 1|3 0|2

  15. Enabling Actions ● An action of a process P i may potentially enable another action of P i (0, 3 , 2 ), (1, 2 , 3 ), (2, 1 , 0 ) (3, 0 , 1 ) 1| 3 0| 2 0 2 1 3 1 |3 0 |2

  16. Closed Walks in Action Graphs ● Propagation of enablement as closed walk: sequence of consecutive actions A 0 : (|x i -1 - x i | mod 2) β‰  0 Γ  x i := x i-1 βŠ• 4 2 (0, 3 , 2 ), (1, 2 , 3 ), (2, 1 , 0 ) (3, 0 , 1 ) 1| 3 0| 2 0 2 1 3 1 |3 0 |2 Closed Walks 2 Closed Walks 1

  17. Enabling Closed Walks ● A closed walk enabling another closed walk. 0| 2 0 2 1 3 Closed walk 1: (1, 2 , 3 ), Closed walk 2:

  18. Enabling Closed Walks ● A closed walk enabling another closed walk. 1| 3 0| 2 0 2 1 3 Closed walk 1: (1, 2 , 3 ), Closed walk 2: (0, 3 , 2 ),

  19. Enabling Closed Walks ● A closed walk enabling another closed walk. 1| 3 0| 2 0 2 1 3 0 |2 Closed walk 1: (1, 2 , 3 ), (3, 0 , 1 ) Closed walk 2: (0, 3 , 2 ),

  20. Enabling Closed Walks ● A closed walk enabling another closed walk. 1| 3 0| 2 0 2 1 3 1 |3 0 |2 Closed walk 1: (1, 2 , 3 ), (3, 0 , 1 ) Closed walk 2: (0, 3 , 2 ), (2, 1 , 0 )

  21. Enabling Closed Walks ● A closed walk enabling another closed walk. 1| 3 0| 2 0 2 1 3 1 |3 0 |2 Closed walk 1 enables closed walk 2. Closed walk 1: (1, 2 , 3 ), (3, 0 , 1 ) Closed walk 2: (0, 3 , 2 ), (2, 1 , 0 )

  22. Enabling Closed Walks ● A closed walk enabling another closed walk. 1| 3 0| 2 0 2 1 3 1 |3 0 |2 A closed walk of length n enables another closed walk of length n iff j -th action of the first walk enables the j -th action of the second walk, for 1≀ j ≀ n Closed walk 1: (1, 2 , 3 ), (3, 0 , 1 ) Closed walk 2: (0, 3 , 2 ), (2, 1 , 0 )

  23. Circularly Enabling Closed Walks β€’ Closed walk 2 also enables closed walk 1. 1| 3 0 2 1 3 Closed walk 1: Closed walk 2: (0, 3 , 2 ),

  24. Circularly Enabling Closed Walks β€’ Closed walk 2 also enables closed walk 1. 1| 3 0| 2 0 2 1 3 Closed walk 1: (1, 2 , 3 ), Closed walk 2: (0, 3 , 2 ),

  25. Circularly Enabling Closed Walks β€’ Closed walk 2 also enables closed walk 1. 1| 3 0| 2 0 2 1 3 1 |3 Closed walk 1: (1, 2 , 3 ), Closed walk 2: (0, 3 , 2 ), (2, 1 , 0 )

  26. Circularly Enabling Closed Walks β€’ Closed walk 2 also enables closed walk 1. 1| 3 0| 2 0 2 1 3 1 |3 0 |2 Closed walk 1: (1, 2 , 3 ), (3, 0 , 1 ) Closed walk 2: (0, 3 , 2 ), (2, 1 , 0 )

  27. Circularly Enabling Closed Walks 1| 3 0| 2 0 2 1 3 1 |3 0 |2 2 circularly enabling closed walks, each of length 2. Closed walk 1: (1, 2 , 3 ), (3, 0 , 1 ) Closed walk 2: (0, 3 , 2 ), (2, 1 , 0 )

  28. Local Characterization of Global Livelocks Theorem 2 : There are m closed walks, each of length n , in the action graph that enable each other circularly (m > 1 and n β‰₯1) if and only if A uni-ring of symmetric, constant-space, deterministic and self-disabling processes has a livelock for a ring size ( m Γ— n ) [SSS’13] Alex Klinkhamer and Ali Ebnenasir, Verfiying Livelock Freedom of Parameterized Rings and Chains , 15th International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS 2013). [ACM TOCL’19] A. Klinkhamer and A. Ebnenasir, β€œ On the verification of livelock-freedom and self-stabilization on parameterized rings ,” ACM Transactions on Computational Logic, vol. 20, no. 3, pp. 1–36, 2019.

  29. Synthesize a PDS using just locality and action graphs?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend