Berkeley UNIX 4.2BSD is an operating system which provides alternative ways for processes to communicate with each other. User processes may choose, for example, intermachine communications media, protocols, addressing families, and styles of communication. In particular, user processes may use datagram or stream communication. In this paper we present a study of the impact that IPC mechanisms, as currently implemented in Berkeley UNIX 4.2BSD in Ethernet based environments, have, from the user process viewpoint, on the performance of distributed applications.

This study not only assesses the impact that different processors, network hardware interfaces, and Ethernets have on the communication across machines between user processes, but also the effect of the loading of the various components which participate in the interprocess communication mechanism. Thus, host and ether loads are also taken into account in our study. Our measurements highlight the current ultimate bounds on performance which may be achieved by user process applications communicating across machines, and serve as a guide in designing performance critical applications. For this study, hosts and ethers have been loaded with a user defined mix of tasks, i.e., an artificial workload.

Moreover, we present a detailed timing analysis of the dynamic behavior of the TCP/IP and the UDP/IP network communication protocols' current implementation in Berkeley UNIX 4.2BSD. This study sheds light on the tradeoffs encountered when software and hardware perform the same actions on data, e.g., checksums, and when several buffering schemes coexist at different levels in the system.




Download Full History