DocumentCode
1237761
Title
Communication and Synchronization Primitives for Distributed Programs
Author
Natarajan, N.
Author_Institution
Department of Computer Science and Engineering, University of Texas at Arlington
Issue
4
fYear
1985
fDate
4/1/1985 12:00:00 AM
Firstpage
396
Lastpage
416
Abstract
A distributed program is a collection of several processes which execute concurrently, possibly in different nodes of a distributed system, and which cooperate with each other to realize a common goal. In this paper, we present a design of communication and synchronization primitives for distributed programs. The primitives are designed such that they can be provided by a kernel of a distributed operating system. An important feature of the design is that the configuration of a process, i.e., identities of processes with which the process communicates, is specified separately from the computation performed by the process. This permits easy configuration and reconfiguration of processes. We identify different kinds of communication failures, and provide distinct mechanisms for handling them. The communication primitives are not atomic actions. To enable the construction of atomic actions, two new program components, atomic agent and manager are introduced. These are devoid of policy decisions regarding concurrency control and atomic commitment. We introduce the notion of conflicts relation using which a designer can construct either an optimistic or a pessimistic concurrency control scheme. The design also incorporates primitives for constructing nested atomic actions.
Keywords
Atomic action; communication failure; computing agent; distributed operating system; distributed piogram; distributed system; kernel; port; Centralized control; Computer networks; Computer science; Concurrency control; Context; Design optimization; Distributed computing; Kernel; Operating systems; Programming; Atomic action; communication failure; computing agent; distributed operating system; distributed piogram; distributed system; kernel; port;
fLanguage
English
Journal_Title
Software Engineering, IEEE Transactions on
Publisher
ieee
ISSN
0098-5589
Type
jour
DOI
10.1109/TSE.1985.232229
Filename
1702022
Link To Document