Channel with Termination Detection Service
暂无分享,去创建一个
It is often the case in a distributed computation that we want a particular component system of the computation to determine when and if the computation has terminated, for example, whether a routing update has reached all the routers in a network. Stating this independently of the specific distributed computation leads to the “distributed termination detection” problem [1]: given a generic distributed computation, say X, to obtain another distributed computation, say Y, that executes alongside X on the same platform, does not disturb X, and informs a particular system, which we call the “sink” system, when and if X has terminated. More precisely, each system in X is either “active” or “inactive”. An active system can do local computation, send and receive messages, and become inactive. An inactive system does nothing except become active upon receiving a message. The computation X is said to have terminated if all its systems are inactive and none of its messages are in transit. There are many elegant solutions to this problem, e.g., [1–4].
[1] Friedemann Mattern,et al. Algorithms for distributed termination detection , 1987, Distributed Computing.
[2] A. J. M. van Gasteren,et al. Derivation of a Termination Detection Algorithm for Distributed Computations , 1983, Inf. Process. Lett..
[3] Gerard Tel,et al. The derivation of distributed termination detection algorithms from garbage collection schemes , 1991, TOPL.
[4] Edsger W. Dijkstra,et al. Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..