Asynchronous communication mechanism
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.
- H.R., Simpson (July 1997). "Role model analysis of an asynchronous communication mechanism". Computers and Digital Techniques, IEE Proceedings 144 (4): 232–240. ISSN 1350-2387.