Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.

Similar presentations


Presentation on theme: "1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification."— Presentation transcript:

1 1 Concurrency Specification

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

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

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

5 5 Concurrency in Architecture Implementations

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

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

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

9 9 Specification-Based Model - 1 4 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 10 Specification-Based Model - 2 4 Process construct – Independent thread of execution – Multiple processes coexist – Control allocation/deallocation of synchronizer controlled resources 4 Example: – Web server : synchronizer – Web browser : process

11 11 Gas-Station Model

12 12 Gas-Station Model - Program Spec

13 13 Gas Station Model - RSTG

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

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

16 16 Tool Support for Concurrency Analysis 4 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 17 Detecting a Race Condition 4 Customer1 pays before Customer2 but Customer2 takes up the hose before Customer1 thus getting the amount of gas purchased by Customer1

18 18 The INCA Query

19 19 INCA Results 4 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 20 Features Common with Other Formal Methods 4 RSTG 4 Pre and post conditions 4 State invariants

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

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

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

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

25 25 The Dining Philosophers Problem

26 26 Architectures and Concurrency 4 Component types: – Synchronizer – Process units 4 Connector – Synchronization connector

27 27 Synchronization Connector

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


Download ppt "1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification."

Similar presentations


Ads by Google