relating and visualising csp vcr and structural traces
play

Relating and Visualising CSP , VCR and Structural Traces Neil Brown - PowerPoint PPT Presentation

Relating and Visualising CSP , VCR and Structural Traces Neil Brown 1 Marc Smith 2 1 Computing Laboratory, University of Kent, UK 2 Department of Computer Science, Vassar College, NY, USA 2 November 2009 Motivation Dining Philosophers


  1. Relating and Visualising CSP , VCR and Structural Traces Neil Brown 1 Marc Smith 2 1 Computing Laboratory, University of Kent, UK 2 Department of Computer Science, Vassar College, NY, USA 2 November 2009

  2. Motivation Dining Philosophers

  3. Motivation Starving Dining Philosophers

  4. Background Visualization: Strings and Beads Consider the CSP system: P || Q { a , f } where P = a → b → c → f → SKIP Q = a → d → e → f → SKIP b c P a f Q d e

  5. Background Visualization: Strings and Beads Consider the CSP system: P || Q { a , f } where P = a → b → c → f → SKIP Q = a → d → e → f → SKIP b c P a f Q d e

  6. Background Visualization: Strings and Beads Consider the CSP system: P || Q { a , f } where P = a → b → c → f → SKIP Q = a → d → e → f → SKIP b c P a f Q d e

  7. Background Visualization: Strings and Beads Consider the CSP system: P || Q { a , f } where P = a → b → c → f → SKIP Q = a → d → e → f → SKIP b c P a f Q d e

  8. Background CSP Observer

  9. Background CSP Observer

  10. Background CSP Observer b c P a f Q d e b c P a f Q d e b c P a f Q d e b c P a f Q d e � a , b , c , d , e , f � � a , b , d , c , e , f � � a , b , d , e , c , f � � a , d , b , c , e , f � � a , d , e , b , c , f � � a , d , b , e , c , f �

  11. Background VCR Observer(s)

  12. Background VCR Observer(s) b c P a f Q d e b c P a f Q d e b c P a f Q d e b c P a f Q d e �{ a } , { b , d } , { c , e } , { f }� �{ a } , { b } , { c , d } , { e } , { f }� �{ a } , { d } , { b , e } , { c } , { f }�

  13. Background Structural Observers

  14. Background Structural Observers b c P a f Q d e b c P a f Q d e b c P a f Q d e b c P a f Q d e ( a → b → c → f ) || ( a → d → e → f )

  15. Background Traces Three types of traces: 1 CSP traces A sequence of individual events, recorded by the observer; events observed simultaneously are interleaved abstracts away time and space 2 VCR Traces A sequence of event multisets; multiple observers account for different views preserves time independence; abstracts away space 3 Structural Traces Sequential and parallel composition of the trace reflects the program’s structure preserves time independence and space

  16. Background Space and Mobility c logger

  17. Background Space and Mobility c logger!42 logger logger?42

  18. Background Space and Mobility c logger!42 c?logger -> c!logger logger logger?42

  19. Background Space and Mobility c c?logger logger!42 -> logger!43 -> c!logger logger logger?42 -> logger?43

  20. Background Space and Mobility c c?logger logger!42 -> logger!43 -> c!logger logger logger?42 -> logger?43 ( logger ! 42 → c ! logger ) || ( c ? logger → logger ! 43 ) || ( logger ? 42 → logger ? 43 )

  21. Conversion Conversion Example CSP: P = ( AB o 9 AB ) || ( b → b → SKIP ) { b } where AB = ( a → SKIP ) ||| ( b → SKIP )

  22. Conversion Conversion Example CSP: P = ( AB o 9 AB ) || ( b → b → SKIP ) { b } where AB = ( a → SKIP ) ||| ( b → SKIP ) Structural Trace Visualisation: a a b b b b

  23. Conversion Conversion Example CSP: P = ( AB o 9 AB ) || ( b → b → SKIP ) { b } where AB = ( a → SKIP ) ||| ( b → SKIP ) Structural Trace Conversion Algorithm: a a b b b b

  24. Conversion Conversion Example Structural Trace Conversion Algorithm: a a b b b b VCR Trace Visualisation: a a b b

  25. Conversion Conversion Example VCR Trace Visualisation: a a b b

  26. Conversion Conversion Example VCR Trace Visualisation: a a b b CSP Trace Visualisation: a b a b b a a b a b b a b a b a

  27. Example Starving CHP Philosophers

  28. Example Starving CHP Philosophers Trace philosopher eatChicken = forever (syncBarrier eatChicken) chef a b c = forever ((syncBarrier a <&> syncBarrier b) <-> (syncBarrier b <&> syncBarrier c) <-> (syncBarrier a <&> syncBarrier c))

  29. Example Starving CHP Philosophers Trace philosopher eatChicken = forever (syncBarrier eatChicken) chef a b c = forever ((syncBarrier a <&> syncBarrier b) <-> (syncBarrier b <&> syncBarrier c) <-> (syncBarrier a <&> syncBarrier c)) chicken.0 chicken.0 chicken.0 chicken.1 chicken.2 chicken.2 chicken.2 chicken.2 ... (Chef)

  30. Summary Summary Traces are useful for diagnostics and observing run-time behaviour Structural traces Most straightforward and efficient to record Useful for observing mobility Conversion algorithms One Structural trace converts to many VCR traces One VCR trace converts to many CSP traces Visualisation Graphs to represent CSP , VCR and Structural traces Tool support will be beneficial

  31. Future Work Tools to Explore Traces numbers b d prefix delta a c recorder succ 42*(b? -> (c! || d!)) || (42*(b! -> a?) -> b!) || 42*(c! -> a?)

  32. Future Work Tools to Explore Traces numbers b d prefix delta a c recorder succ 42*(b? -> (c! || d!))

  33. Future Work Challenge: Structural traces and UTP a a d e b b f c c g a c d Figure: Concatenation, quotient and healthiness conditions

  34. Future Work Questions? Practical demo of traces for testing – tonight at the fringe

Recommend


More recommend