2. Inter-process Communication

Inter-process communication (IPC) consists of an agreement among programs on a method by which they can share data. These methods are often specific to the operating system, and are optimized to the particular needs of the applications using them. When programs communicate across a network, they must use a common IPC protocol, normally implemented as part of the operating system or as an add-on to it. The most common of these protocols is called TCP/IP and is designed to work well in both wide area and local area networks. Almost all operating systems provide TCP/IP services. All versions of Microsoft Windows (3.11, 95, and NT) have built-in or freely available TCP/IP services. QNX offers a TCP/IP add-on to QNX 4 for an additional fee.

Both MS-Windows and QNX also implement a proprietary IPC protocol. In Windows, the protocol is DDE (Dynamic Data Exchange), which implements both synchronous and asynchronous communication between tasks. DDE works reasonably well between tasks on the same computer, but suffers from speed and reliability problems when implemented across a network (as with Net-DDE). In QNX, the proprietary protocol is known as FLEET, an extremely quick and robust synchronous IPC protocol optimized for local area networking. For tasks interacting on a single machine or on a QNX LAN, FLEET exhibits reliability and speed properties far in excess of TCP/IP.

In order for QNX processes to interact with MS-Windows processes, there must be some agreement on the protocol being used. This agreement normally takes one of two forms:

Copyright 1995-2002 by Cogent Real-Time Systems, Inc.