A pipe is a processor storage buffer that enables data to be passed between applications using processor storage.
Moving data by using processor storage is quicker than writing it to or reading it from DASD or tape. This speed is an important advantage of using pipes.
The main advantage of using pipes is that they enable true parallel processing. An application does not need to finish running before the data that it generates is available to another application. This advantage can be easily understood by the following analogy.
Example
Parallel Processing: Bottling Beverages in an Assembly Line
As a bottle moves along the assembly line in a beverage bottling plant, one machine fills the bottle and another machine caps the bottle, and so on.
The assembly line is built for efficiency. All machines work simultaneously (in parallel), with each machine acting upon a different bottle. No machines sit idle.
One bottle is being filled while a previous one is being capped, and another bottle is being labeled while a previous one is being placed in a carton.
By the time the last few bottles are being filled, almost all bottles have been completely processed and packaged.
Sequential Processing: Bottling Beverages One Machine at a Time
Suppose, however, that instead of using an assembly line (parallel processing), the bottling processes were performed sequentially (one process at a time). Crating of the bottles could not begin until all bottles were labeled, but labeling could not begin until all bottles were capped. Capping could not begin until all bottles were filled. The inefficiency and wasted time in such a process is readily apparent. Most machines would be idle most of the time.
This section provides the following topics: