Processes sometimes need to communicate with one another. For example Process 1 might ask Process 2 to carry out a calculation. Many communications consist simply of a process informing another process that it has reached a certain stage, eg: "I have reached Point X in the program", or "The result for Y has been calculated". Communications like this are often used to synchronise processes which are dependent on each other, eg: Process 1 might need the answer to a calculation carried out by Process 2. When Process 1 reaches the point where this information is required, it will be suspended until Process 2 carries out the calculation and tells Process 1 that it can proceed.
Inter-Process Communication (IPC) is a set of techniques for the exchange of data between processes. The processes can be running on a single computer or on two or more computers connected to a network.
The Windows family of operating systems provides several mechanisms for inter-process communications (IPC). Some mechanisms are used to distribute work among a number of processes while others are used to distribute work among the computers on a network. The specific mechanisms used may vary according to the bandwidth and latency of communication between the processes and the type of data being communicated.
Applications that can use IPC are generally classed as clients or servers. A client is an application or a process that requests a service from another application or process, while a server is an application or a process that responds to a request from a client. Some applications can act as both a client and a server.
Next: IPC Mechanisms