Download
concurrency specification n.
Skip this Video
Loading SlideShow in 5 Seconds..
Concurrency Specification PowerPoint Presentation
Download Presentation
Concurrency Specification

Concurrency Specification

206 Vues Download Presentation
Télécharger la présentation

Concurrency Specification

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Concurrency Specification

  2. Outline • Issues in concurrent systems • Programming language support for concurrency • Concurrency analysis - A specification based approach • Concurrency and other formal methods • Deadlock checker • Concurrency and architectures

  3. Concurrency • Coexistence • Sharing of resources • Issues • Asynchronicity • Non-determinism • Solution • Locks • Results • Deadlock and starvation

  4. Concurrency in Various Disciplines • Databases • Transaction serializability • Operating systems • Multithreading • Electronic circuits • Flip flops • Real life • Gas station example

  5. Concurrency in Architecture Implementations

  6. PL Support for Concurrency - 1 • Fork and join constructs • Queue construct and the signal operation • Concurrent Pascal • The Java synchronized keyword

  7. PL Support for Concurrency - 2 • Communicating sequential processes [CSP] • Producer command : consumer!m • Consumer command : producer?n • Guarded commands • <guard> —› <command-list> • guard : list of declarations, boolean expressions or an input command • Alternative guarded command • [ G1 —› C1 ƀ G2 —›C2 ƀ …. ƀ Gn —› Cn]

  8. From Specification to Implementation Specification PhaseImplementation Phase • Easy to verify safety Difficult to verify and liveness safety and liveness • State spaces small State spaces and manageable large and unmanageable; testing difficult • Cost of correcting Cost of correcting flaws is low flaws is high

  9. Specification-Based Model - 1 • Synchronizer construct • Set of variables defining the state of shared resources • Set of operations on these variables (with pre/post conditions) • Set of invariants • Safety conditions • Liveness conditions

  10. Specification-Based Model - 2 • Process construct • Independent thread of execution • Multiple processes coexist • Control allocation/deallocation of synchronizer controlled resources • Example: • Web server : synchronizer • Web browser : process

  11. Gas-Station Model

  12. Gas-Station Model - Program Spec

  13. Gas Station Model - RSTG

  14. Gas Station Model - Event Expressions • Two customers trying to buy gas concurrently

  15. Gas Station Model - Reachability Graph • Identifies the states that can be reached by executing enabled operations in processes and synchronizers • Constructed from event expressions and RSTG • Nodes represent states of RSTG • Edges represent operations from event expressions • A deadlock occurs if the graph contains terminal nodes

  16. Tool Support for Concurrency Analysis • INCA (Inequality Necessary Condition Analysis) • Checks properties of an architectural specification (e.g. mutual exclusion) • Provides example executions that violate those properties • Verifies that a modification removes the faults

  17. Detecting a Race Condition • Customer1 pays before Customer2 but Customer2 takes up the hose before Customer1 thus getting the amount of gas purchased by Customer1

  18. The INCA Query

  19. INCA Results • INCA generates a system of inequalities based on the violation of properties specified by the query • A consistent inequality implies such a situation is possible • An inconsistent inequality implies such a situation is impossible

  20. Features Common with Other Formal Methods • RSTG • Pre and post conditions • State invariants

  21. Unique Features - 1 • Operation execution phases • Request phase • Enabled phase • Service phase • Only one operation invocation can be in the service phase • Terminate phase • Example: Fair scheduler []<>enabled(o) -> <>service(o)

  22. Unique Features - 2 • Separation of control resources from state variables • Event expressions help “walk through” the concurrency aspect • Semantics of allocation and deallocation • Helpful in detecting deadlocks

  23. Deadlock Checker • Performs checks on parallel programs written in CSP in order to prove freedom from deadlock • Takes in a network file (.net) that has been compiled from a CSP source file using a tool such as FDR

  24. The Dining Philosophers Problem • 5 philosophers and 5 chopsticks • All philosophers keep thinking • When a philosopher feels hungry, he picks up the chopsticks closest to him, eats rice and keeps the chopsticks back • Deadlock: • When all philosophers grab their left chopstick simultaneously

  25. The Dining Philosophers Problem

  26. Architectures and Concurrency • Component types: • Synchronizer • Process units • Connector • Synchronization connector

  27. Synchronization Connector

  28. Conclusions and Discussion • Analysis of concurrent systems early in the development process reduces complexity and cost of correcting errors • A formal analysis will help detect deadlocks and starvation and also in direct code generation • Concurrency in software architectures can be represented in terms of CSPs