Distributed algorithms for static and dynamic termination detection

Termination detection is one of the basic problems of distributed compution and many distributed algorithms have been proposed to solve it. The algorithms proposed till now differ in the way they ensure consistency of the detection, and in the behaviour of channels they assume (FIFO or not, bounded delay or asynchronous, etc). Moreover, they only consider a simple model of underlying application programs: for processes of such programs, non-deterministic constructs are allowed but each receive statement (request) concerns only one message at a time. In this paper a more realistic and general model of distributed compution is presented. This model allows a request (receive statement) to be atomic on several messages and to be defined, using such statements as AND, OR, AND-OR, and k out of n, among others. Within this framework, definitions of static and dynamic termination are proposed and discussed. Then accordingly, two distributed algorithms to detect these terminations are presented proven correct and evaluated. The algorithms differ in the information they use, and in the time they need to claim termination.