Abstract

An algorithm is said to be distributed if it operates on a physically or logically distributed computing architecture. Typically, such architectures lack global control. This requires particular means to model and to verify distributed algorithms. Distributed algorithms are frequently designed in an abstract setting, assuming any network of agents. One of the agents is frequently assumed to initiate a computation, with all other agents reacting by means of identical algorithms. Each agent is aware of its neighbour agents only. Hence, such an algorithm is a schema of behaviour, to run on any in a whole class of networks, such as the connected networks, the ring-or tree-shaped networks, etc. We suggest a representation technique that is particularly tailored to distributed algorithms, based on the observation that the adequate operational primitives of distributed algorithms include local atomic actions, synchronization, local states, message buffers and similar constructs, whereas assignment: statements and global states are no longer essential. Furthermore, a verification technique is presented, allowing surprisingly simple and transparent proofs. This technique includes well established Petri net based concepts as well as new, temporal logic based arguments. The logic exploits the particularly simple structure of Petri nets: Petri net places are taken as predicates, Petri net transitions are elementary predicate transforms, and the notion of concurrent runs yields means to adequately argue on local progress and phase based behaviour.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call