What is Inter Process Communication?
In general, Inter Process Communication is a type of mechanism
usually provided by the operating system (or OS). The main aim or goal of this
mechanism is to provide communications in between several processes. In short,
the intercommunication allows a process letting another process know that some
event has occurred.
Let us now look at the general definition of inter-process
communication, which will explain the same thing that we have discussed above.
Definition
"Inter-process communication is used for exchanging useful
information between numerous threads in one or more processes (or
programs)."
To understand inter process communication, you can consider the
following given diagram that illustrates the importance of inter-process
communication:
Role of Synchronization in Inter Process Communication
It is one of the essential parts of inter process communication.
Typically, this is provided by interprocess communication control mechanisms,
but sometimes it can also be controlled by communication processes.
These are the following methods that used to provide the
synchronization:
- Mutual
Exclusion
- Semaphore
- Barrier
- Spinlock
Mutual Exclusion:-
It is generally required that only one process thread can enter
the critical section at a time. This also helps in synchronization and creates
a stable state to avoid the race condition.
Semaphore:-
Semaphore is a type of variable that usually controls the access
to the shared resources by several processes. Semaphore is further divided into
two types which are as follows:
- Binary
Semaphore
- Counting
Semaphore
Barrier:-
A barrier typically not allows an individual process to proceed
unless all the processes does not reach it. It is used by many parallel
languages, and collective routines impose barriers.
Spinlock:-
Spinlock is a type of lock as its name implies. The processes
are trying to acquire the spinlock waits or stays in a loop while checking that
the lock is available or not. It is known as busy waiting because even though
the process active, the process does not perform any functional operation (or
task).
Approaches to Interprocess Communication
We will now discuss some different approaches to inter-process
communication which are as follows:
These are a few different approaches for Inter- Process
Communication:
- Pipes
- Shared
Memory
- Message
Queue
- Direct
Communication
- Indirect
communication
- Message
Passing
- FIFO
To understand them in more detail, we will discuss each of them
individually.
Pipe:-
The pipe is a type of data channel that is unidirectional in
nature. It means that the data in this type of data channel can be moved in
only a single direction at a time. Still, one can use two-channel of this type,
so that he can able to send and receive data in two processes. Typically, it
uses the standard methods for input and output. These pipes are used in all
types of POSIX systems and in different versions of window operating systems as
well.
Shared Memory:-
It can be referred to as a type of memory that can be used or
accessed by multiple processes simultaneously. It is primarily used so that the
processes can communicate with each other. Therefore the shared memory is used
by almost all POSIX and Windows operating systems as well.
Message Queue:-
In general, several different messages are allowed to read and
write the data to the message queue. In the message queue, the messages are
stored or stay in the queue unless their recipients retrieve them. In short, we
can also say that the message queue is very helpful in inter-process
communication and used by all operating systems.
To understand the concept of Message queue and Shared memory in
more detail, let's take a look at its diagram given below:
Message Passing:-
It is a type of mechanism that allows processes to synchronize
and communicate with each other. However, by using the message passing, the
processes can communicate with each other without restoring the hared
variables.
Usually, the inter-process communication mechanism provides two
operations that are as follows:
- send
(message)
- received
(message)
Note: The size of the
message can be fixed or variable.
Direct Communication:-
In this type of communication process, usually, a link is
created or established between two communicating processes. However, in every
pair of communicating processes, only one link can exist.
Indirect Communication
Indirect communication can only exist or be established when
processes share a common mailbox, and each pair of these processes shares
multiple communication links. These shared links can be unidirectional or
bi-directional.
FIFO:-
It is a type of general communication between two unrelated
processes. It can also be considered as full-duplex, which means that one
process can communicate with another process and vice versa.
Some other different approaches
- Socket:-
It acts as a type of endpoint for receiving or sending the data
in a network. It is correct for data sent between processes on the same
computer or data sent between different computers on the same network. Hence,
it used by several types of operating systems.
- File:-
A file is a type of data record or a document stored on the disk
and can be acquired on demand by the file server. Another most important thing
is that several processes can access that file as required or needed.
- Signal:-
As its name implies, they are a type of signal used in inter
process communication in a minimal way. Typically, they are the massages of
systems that are sent by one process to another. Therefore, they are not used
for sending data but for remote commands between multiple processes.
Usually, they are not used to send the data but to remote
commands in between several processes.
Why we need interprocess communication?
There are numerous reasons to use inter-process communication
for sharing the data. Here are some of the most important reasons that are
given below:
- It
helps to speedup modularity
- Computational
- Privilege
separation
- Convenience
- Helps
operating system to communicate with each other and synchronize their
actions as well.
Note: IPC cannot be
considered a solution to all problems but what is important is that it does its
job very well.
కామెంట్లు లేవు:
కామెంట్ను పోస్ట్ చేయండి