Inter-process Communication

Courtesy: Wikipedia

In computing, Inter-process communication (IPC) is a set of methods for the exchange of data among multiple threads in one or more processes. Processes may be running on one or more computers connected by a network. IPC methods are divided into methods for

  1. message passing,
  2. synchronization,
  3. shared memory, and
  4. remote procedure calls (RPC).  The method of IPC used may vary based on the bandwidth and latency of communication between the threads, and the type of data being communicated.

There are several reasons for providing an environment that allows process cooperation:

IPC may also be referred to as inter-thread communication and inter-application communication.

Some Popular Implementations

Main IPC Methods

File Most operating systems
Signal Most operating systems; some systems, such as Windows, implement signals in only the C run-time library and provide no support for their use as an IPC method
Socket Most operating systems
Message queue Most operating systems
Pipe All POSIX systems, Windows
Named pipe All POSIX systems, Windows
Semaphore All POSIX systems, Windows
Shared memory All POSIX systems, Windows
Message passing
(shared nothing)
Used in MPI paradigm, Java RMI, CORBA, MSMQ, MailSlots, others
Memory-mapped file All POSIX systems, Windows; this method may carry race condition risk if a temporary file is used

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s