The term IPC (Inter-Process Communication) describes various ways by which different processes running on some operating systems communicate with each other. Various schemes available are as follows:
Pipes: One-way communication scheme through which different processes can communicate. The problem is that the two processes should have a common ancestor (parent-child relationship). However, this problem was fixed with the introduction of named-pipes (FIFO).
Message Queues: Message queues can be used between related and unrelated processes running on a machine.
Shared Memory: This is the fastest of all IPC schemes. The memory to be shared is mapped into the address space of the processes (that are sharing). The speed achieved is attributed to the fact that there is no kernel involvement. But this scheme needs synchronization.
Various forms of synchronization are mutexes, condition-variables, read-write locks, record-locks, and semaphores.