What are the distributed synchronization mechanisms?
Answers
Computer networks and distributed computation have recently attracted a good
deal of attention. This is due, in part, to the availability of low-cost processors
which make the construction of such networks viable. In addition, by distributing
a computation over a number of processors, it is possible to construct a system
that is immune to various types of failures, has high throughput, and exhibits
incremental growth capabilities.
Often, a particular task can be decomposed into disjoint (i.e., no shared
memory} communicating processes in many different ways. The particular decomposition used dictates the extent to which these goals are realized. For
example, tightly coupling processes by using synchronous communications protocols may decrease the overall throughput of the system because the potential
for parallelism is reduced. For this reason, the use of asynchronous communication protocols seems sensible. Such protocols allow a process to continue executing
while a message is being delivered on its behalf. This tends to insulate the
performance of processes from each other and from the communications network.
Unfortunately, a consequence of this approach is that no single process can have
complete knowledge of the entire state of the system, because any state information a process obtains from messages reflects a past state of the sending
processes, not the current state. This makes the design and analysis of distributed
programs very difficult.