Discipline: Mathematics, Computer Science, Information Technology, Computer Technology
Concurrency can be defined as the study of parallel processes. The features of significant interest in such a study can include communication between parallel processes, deadlock behavior, abstraction from internal steps, divergence, nondeterminism, fairness, priorities in the choice of actions, tight regions, etc (Van Glabbeek 1987). These processes are mostly studied within the model that captures some of the features of concurrency. Among the models frequently used are Petri nets (Reisig 1985), topological models (De Bakker and Zucker 1982), algebraic models (Bergstra and Klop 1986), graph models (Milner 1980), observation models (Brooks et.al. 1984), and the models used in Trace theory (Rem 1983). The parameters used in the classification of these models of concurrency are the features captured by the model, the identifications made on processes, and the particular way of representing them. Process algebra is an algebraic approach to the study of concurrent systems. It uses algebraic languages to specify processes and to formulate statements about them. These statements are verified using the calculus embodied in the algebra. Some authors, however, do not regard process algebra as a model of concurrency. (Van Glabbeck 1987).