« MAGIC: model checking for C | Main | baby feeder (5,364,348) »
January 27, 2004
background reading in concurrency theory
[ Concurrency Research - The State of the Art, Classifying models of concurrency] The first is a little dated since it was published in 1996, but seems to cover the high points of concurrency theory. Perhaps useful in getting familiar with the area. The second is less detailed, but offers another perspective on how to classify concurrency models.
It is accepted that there are no good functional models of concurrency. A functional model maps inputs to outputs. Concurrency models begin with a definition of an atomic action. All models use atomic actions and differ in how they "capture the notion of system execution." There are "automata-based" which descibe concurrent systems as "states and transitions between states" and there are "action-based" models which model systems using "structures consisting of atomic actions." An early action-based model was trace theory.
Intensional models "require explicit description of system states and possible state changes" Extensional models "concentrate on the pattern of possible interactions over time".
Interleaving models assume that "observations of system behavior are sequential" so that "parallel actions [are] reduced to nondeterministic interleaving." Truly concurrent models "treat concurrency as fundamental" and system behavior is "represented in terms of the causal relations among events performed by the components of distributed states"
Then there's branching v. linear time. Branching time allows one to track when computational paths diverge.
Either use logical formulas to describe concurrent systems or use an abstract concurrent system to describe the correct concurrent system. Logics are available for branching and linear time specification of correctness (in the form of LTL and CTL, as might be expected). But the differences between interleaved and truly concurrent models remains undeveloped as do the differences between intensional and extensional views of system behavior.
I think our most useful model would be an intentional model that uses interleaved semantics and a branching model of time.
van Glabbeek gives 5 convenient classes of concurrency models.
- graph: like an automata based model.
- net: like petri nets.
- event: a set of events with "some structure on" the set of events that "determines the relations between events" Reminds me of Smolka's intentional models.
- explicit: looks like what Smolka would call a "specification using a system to specify a more concrete system"
- term like CSP or CCS a language with a syntax and a semantics.
Posted by jones at January 27, 2004 08:35 AM
Comments
Post a comment
Thanks for signing in, . Now you can comment. (sign out)
(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)