Abstract
A simple, basic and general model for describing both the (input-output) behavior and the implementation of distributed systems is presented. An important feature of the model is the separation of the machinery used to describe the implementation and the behavior. This feature makes the model potentially useful for design specification of systems and of subsystems.
The implementation model relies on the basic notions of process and variable, assuming indivisibility of variable access. Long-distance communication is modelled by a special process representing a "channel." Process executions are considered to be completely asynchronous; this consideration is reflected in the fairness of the operations for combining processes. The primitivity and generality of the model make it an apparently suitable basis for cost comparison of various message-passing protocols and other higher-level programming constructs, as well as of complex distributed system implementations.
A system's (input-output) behavior is modelled by a set of finite and infinite sequences of actions, each action involving access to a variable.
Basic definitions, examples and characterization results are given. An extended example, involving specification and implementation of an arbiter system, is presented. For this example, equivalent implicit and explicit specifications are given. Several different implementations are described, each of which exhibits the required behavior.
General remarks are made about cost comparison of distributed system implementations.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
This research was supported in part by the National Science Foundation under grants MCS77-02474 and MCS77-15628.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
Petri, C.A., "Kommunikation mit Automaten," Schriften des Reinish Westfalischen Inst. Instrumentelle Mathematik, Bonn. 1962.
Hoare, C.A.R., "Communicating Sequential Processes," Technical Report, Department of Computer Science, the Queen's University, Belfast, Northern Ireland, December, 1976.
Milne, G. and R. Milner, "Concurrent Processes and Their Syntax," Internal Report CSR-2-77, Department of Computer Science, Edinburg, May, 1977.
Dijkstra, E.W., "Co-operating Sequential Processes," Programming Languages, NATA Advanced Study Institute, Academic Press, 1968.
Campbell, R. and A. Habermann, "The Specification of Process Synchronization Using Path Expressions," Lecture Notes in Computer Science, 16, Springer-Verlag, 1974.
Shaw, A.C., "Software Descriptions with Flow Expressions," IEEE Trans. on Software Engineering SE-4, 3 (1978), 242–254.
Feldman, J., "Synchronizing Distant Cooperating Processes," Technical Report 26, Department of Computer Sciences, University of Rochester, October, 1977.
Cremers, A. and T. N. Hibbard, "Mutual Exclusion of N Processes Using an 0(N) — Valued Message Variable," USC Department of Computer Science Manuscript, 1975.
Burns, J.E., M. J. Fischer, P. Jackson, N.A. Lynch, and G. L. Peterson, "Shared Data Requirements for Implementation of Mutual Exclusion Using a Test-and-Set Primitive," Proceedings of 1978 International Conference on Parallel Processing (1978).
Chandra, A.K., "Computable Nondeterministic Functions," Proceedings of 19th Annual Symposium on Foundations of Computer Science, 1978.
Greif, Irene, "A Language for Formal Problem Specification," Comm. ACM, 20, 12 (1977), 931–935.
Atkinson, R. and C. Hewitt, "Specification and Proof Techniques for Serializers," AI Memo 438, Massachusetts Institute of Technology, August, 1977.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1979 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Lynch, N.A., Fischer, M.J. (1979). On describing the behavior and implementation of distributed systems. In: Kahn, G. (eds) Semantics of Concurrent Computation. Lecture Notes in Computer Science, vol 70. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0022468
Download citation
DOI: https://doi.org/10.1007/BFb0022468
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-09511-8
Online ISBN: 978-3-540-35163-4
eBook Packages: Springer Book Archive