The different type of process executing in the operating system and a process which connects the different types of tasks to the operating system is called Inter process communication.
The inter process communication is used between the computer and different types of tasks are interconnected with the operating system.
A process that is executing concurrently in the operating system can be either an independent process or cooperative process.
It is a process which is independent and it is not affected by other processes executing in the system. Any process that does not share data with any other process is independent.
It is a process which is cooperative and is affected by other processes executing in the system. Any process that shares data with another process is called a cooperative process.
There are several reasons which allow the inter-process communication which is as follows −
Information sharing − Inter-process communication is used for instruction sharing and several tasks and commands are performed in the computer by sharing the operating system to the task. The information is needed to be shared so that a task is performed.
Computation speed − The inter-process communication also helps for computation so that we can find out at the output and it is helped by the inter-process communication there is direct communication between the operating system and different tasks.
Modularity − The user constructs the system in a modular fashion and it also separates the process into different modules which is called modularity and different processes can be performed in different modules.
Convenience − Individual users may work on many tasks at the same time and users may edit, listen to music and do all types of tasks at a time because the operating system is very convenient due to interprocess communication.
Now let us see the Inter-process communication (IPC) techniques −
Pipes-Pipe is the basic version of the UNIX OS (operating system). Pipes provide one-directional communication between single-system processes. Pipes can be created with the help of pipe system call.
FIFO − A First Come First out (FIFO) is a one-way flow of data. FIFO process is somehow similar to pipes; the main difference is that FIFO can be easily identified in a file system with help of a name.
Shared memory − In Shared memory, the data is passed between the programs. the process creates a memory space that is accessible by another process. Therefore, in shared memory processes communication a memory space is created for data, this data can be read and written to that memory space.
Mapped memory − In mapped memory process communication the shared memory or files are used to share between different processors. The mapped Memory mechanism speeds up file access and also provides IPC.
Message queues − Message queue process communication helps developers to pass messages with help of a single or multiple message queues. This communication is managed by the system kernel. API (application program interface) coordinates the messages.
Sockets − Socket Process communication is used over a network, between a client and a server. The socket process provides a standard connection that is independent of the type of computer and operating system being used.