UNIX Communication Facilities
done by: Gerhard Müller (email@example.com,de)
Supervisor: Dr. N.A. Speirs (Neil.Speirs@ncl.ac.uk)
2nd April 1996
This Document uses HTML 3.0 features, which may not be supported by all WWW-Browsers. Please update your browser to e.g. Netscape 2.0 if necessary.
I wish to thank especially my Supervisor, Dr. A. Speirs, and the Free Software Foundation; without them my work would have been much more difficult.
This document investigates the different mechanisms offered for interprocess
and interprocessor communications by the UNIX operating system.
Some important background information is given to allow a better
understanding of the UNIX communication facilities. This includes
the history of the UNIX operating system, some important standards,
and the idea of the client/server model.
Some communication facilities are only available between processes which
are executed on the same computer. The usage of signals, pipes,
FIFOs, stream pipes, message queues, semaphores, and shared memory is
Communication between processes on different computers includes knowledge
about networking. Therefore the principles of networking are summarized and
one protocol suite, TCP/IP, examined. With this knowledge the UNIX
communication facilities for processes on different computers are described:
the BSD socket interface and the System V Transport Layer Interface.
The knowledge gained is then used to measure the performance of all described
communication facilities. Measurements on three different computer
systems are done to allow general conclusions. It is found that buffer sizes
over 8 Kb
do not normally result in faster data exchange. Shared memory was found to be
the fastest local interprocess communication facility, while the User Datagram
Protocol (UDP) provides the fastest information exchange between processes on
While doing the performance measurements the unreliability of the UDP
protocol was noticed. The overhead of making communication reliable in
spite of an unreliable communication protocol was therefore investigated
and a possible solution is described.
This document is also available as postscript file with 600 dpi.
All source code in this document is available here. as .tar.gz file