Asynchronous Communication Mechanism
Encyclopedia
The role of an Asynchronous Communication Mechanism (ACM) is to synchronize the transfer of data in a system between a writing process and a reading process operating concurrently.
The mechanism by which the ACM performs this task varies heavily depending upon the situation in which the ACM is employed.
A possible scenario is the writer outputs data at higher rate than the reader can process this data. Without an ACM, one of two things will now happen:
If the system incorporates a buffer between processes (e.g. a *nix shell pipe
), then data will accumulate and be processed at the reader's maximum rate. There are some circumstances in which this is a desirable characteristic (e.g. piping a file over SSH
). In the case that all data is important, and the reader's output does not need to be synchronised with the input.
If it is necessary to synchronize the input of the writer with the output of the reader, then it is the place of an ACM to interface with the two systems, and make active decisions on how to handle each packet of information. If, for example, maximum synchronization is required, the ACM would be configured to drop packets, and output the newest packets at the readers maximum speed.
Alternatively, if there is no buffer, some of this data may be lost. If this is undesirable, the ACM can provide this buffer, or process the data in such a way that minimal information is lost.
The mechanism by which the ACM performs this task varies heavily depending upon the situation in which the ACM is employed.
A possible scenario is the writer outputs data at higher rate than the reader can process this data. Without an ACM, one of two things will now happen:
If the system incorporates a buffer between processes (e.g. a *nix shell pipe
Pipeline (Unix)
In Unix-like computer operating systems , a pipeline is the original software pipeline: a set of processes chained by their standard streams, so that the output of each process feeds directly as input to the next one. Each connection is implemented by an anonymous pipe...
), then data will accumulate and be processed at the reader's maximum rate. There are some circumstances in which this is a desirable characteristic (e.g. piping a file over SSH
Secure Shell
Secure Shell is a network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers that it connects via a secure channel over an insecure network: a server and a client...
). In the case that all data is important, and the reader's output does not need to be synchronised with the input.
If it is necessary to synchronize the input of the writer with the output of the reader, then it is the place of an ACM to interface with the two systems, and make active decisions on how to handle each packet of information. If, for example, maximum synchronization is required, the ACM would be configured to drop packets, and output the newest packets at the readers maximum speed.
Alternatively, if there is no buffer, some of this data may be lost. If this is undesirable, the ACM can provide this buffer, or process the data in such a way that minimal information is lost.