Synchronizing shared abstract types
ACM Transactions on Computer Systems (TOCS)
Petri nets: an introduction
Communicating sequential processes
Communicating sequential processes
The theory of database concurrency control
The theory of database concurrency control
Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
Theoretical Computer Science
Communication and Concurrency
Action Systems and Action Refinement in the Development of Parallel Systems - An Algebraic Approach
CONCUR '91 Proceedings of the 2nd International Conference on Concurrency Theory
Modular Completeness for Communication Closed Layers
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Modelling Concurrent Accesses to Shared Data via Petri Nets
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
Linear Time, Branching Time and Partial Order in Logics and Models for Concurrency, School/Workshop
Hi-index | 0.00 |
In [5, 8] a compositional, algebraic framework is provided in which shared memory systems can be specified and analyzed. The interferences in the use of the shared data are modelled, at the abstract level, by a conflict relation among the actions of the system. The semantic model of the process algebra language is defined in such a way that conflicting actions cannot be executed in parallel, whilst independent actions can. We show in the paper that conflict-based semantics do not allow for exploiting all the parallelism among the activities of a system. Actually, there are functionally equivalent programs (i.e. programs that compute the same final states of the activities and data) which perform conflicting actions in different order. In these situations, conflict-based semantics are not satisfactory, since they put useless sequential constraints on the executions. In this paper we define a concurrent semantics for the process algebra language in [5] which is in agreement with functional equivalence. We propose a model for the language which embeds both concurrent and functional aspects of programs, and takes into account two fundamental topics: the enhancement of the parallelism among the activities of the system, and the functional correctness of its computations. The formalism we use is that of Contextual Condition Event nets [12] (CC/E nets). By using CC/E nets we provide a faithful description of both the data and the activities of a shared memory system, in such a way that each process algebra term can be described by means of a set of net computations. The concurrent semantics of a term is then obtained by associating a structure called O-process [4] with each net computation. This semantics is in full agreement with functional equivalence, i.e. two process algebra terms compute the same final states of the activities and data if and only if they have the same concurrent semantics.