Interprocess communication is a capacity of Operating Systems that allows a procedure to interact with any type of other process. IPC allows one application to control an additional application and also share the corresponding data without interfering v one another.

You are watching: What are the two models of interprocess communication

Lets read more to learn an ext about interprocess communication, varieties of processes, various models of IPC, etc.

Interprocess Communication

Interprocess communication (IPC) is an ability to host by one Operating System that enables one procedure to connect with an additional process. The processes have the right to be running on the same computer or on different computers linked through a network.

Interprocess communication allows one applications to control an additional application, and for countless applications to share the equivalent data without interfering through one another. IPC is required in all multiprogramming systems.

But it is not typically supported by a single procedure Operating Systems such as DOS. The OS/2 and MS-Windows support an interprocess communication mechanism called Dynamic Data Exchange.

Interprocess interaction is a device that is supplied by the processes to exchange data and information. Plenty of processes might be executing at the same time in the Operating System. These processes deserve to be divided into two varieties known as independent processes and cooperating processes.

Types of Processes

Following room the important types of processes

Independent Processes Cooperating Processes

Independent Processes

A process that cannot impact or be influenced by any kind of other process executing in the device is referred to as an elevation process. An independent process does not share data with any type of other process.

Cooperating Processes

A process that can affect or be impacted by any type of other procedure executing in the system is dubbed a cooperating process. A cooperating procedure shares data with various other processes.

Advantages of process Cooperation

Different benefits of process cooperation are as follows:

Information Sharing

Process cooperation is necessary due to the fact that many users may need to accessibility the same information such as a shared document etc. An setting must be provided where together information deserve to be accessed by multiple customers concurrently.

Computation Speedup

One task deserve to be separated into multiple work to execute it faster. All separated subtasks have the right to be executed at the same time to speed up the computation. In this case, these subtasks might be compelled to cooperate through each other as they are component of the exact same task.


Process collaboration is very important if the mechanism is come be built in the modular style. The modular device divides the attributes into separate procedures or threads.


Process collaboration provides convenience if a single user is functioning on multiple tasks at the same time. It ensures that any conflicts space avoided in the device if the user is using the very same data in many tasks.

Models of Interprocess Communication

There room two an essential models that interprocess communication:

Shared memory Model Message passing Model

Shared memory Model

The mutual memory model develops a an ar of memory that is shared by cooperating processes. The processes exchange info by reading and writing data to the shared region. This design is faster than a message-passing model and provides preferably speed and convenience.

interprocess communication

It is frequently implemented using system calls and also is more time-consuming. The message-passing model is typically beneficial in a spread environment. The processes might reside on different computers connected by a network.

The chat program offered on the web is an example of the blog post passing system. Individuals can communicate by trading messages v one another. A message-passing model provides at least two operations:

Send (message)

Receive (message)

Two procedures can interact with each various other by sending and receiving messages. This interaction can take ar by creating a interaction link in between these processes.

Mechanisms because that Interprocess Communication

Following are the crucial mechanisms for interprocess communication:


The procedures that want to connect must describe each various other using any kind of method. It can be excellent using straight or indirect communication.

Direct Communication

In straight communication, each process that wants to interact must surname the sender or recipient of the communication. There are two schemes of direct interaction known together symmetric communication and also asymmetric communication.

The symmetric communication requires the both the sender and receiver procedure must surname each other to communicate. In asymmetric communication, only the sender procedure must name the recipient. The recipient procedure does not should name the sender process.

Send () and Receive () features in symmetric interaction are defined as follows:

Send (P, msg) the is supplied to send the blog post msg come the process P.

Receive (Q, msg) the is provided to receive the blog post msg by the procedure Q.

Send () and Receive () functions in asymmetric interaction are characterized as follows:

Send (P, msg) the is offered to send the blog post msg to the process P.

Receive (id, msg) the is supplied to receive blog post msg from any type of process. The variable id refers to the name of the process with which the communication has take away place.

The properties of the communication link in direct communication are together follows:

A link is immediately established in between the pair of procedures that desire to communicate. The procedures only require to know the identification of every other. A link is established between exactly two processes. Just one attach is established in between one pair the processes.In-Direct Communication

In-indirect communication, the post is sent and received indigenous mailboxes or ports. A mailbox is an item used through the processes to store and remove messages. Each mailbox has a distinct identification. Two processes can interact using this method only if they have actually a common mailbox.

A mailbox have the right to be owned by a processor or the Operating System. If the mailbox is own by a procedure then that disappears when that procedure is terminated.

The Operating mechanism must administer a mechanism for the following:

develop a brand-new mailbox Send and also receive messages via mailbox Delete a mailbox

Send () and Receive () features in asymmetric interaction are as follows:

Send (M, msg) the is provided to send the message msg to the mailbox M.

Receive (M, msg) that is provided to get the article msg native the mailbox M.

The nature of a interaction link in indirect communication are together follows:

A attach is established between a pair of processes only if both have actually a common mailbox. A attach may be associated with an ext than 2 processes. Every pair of interacting processes may have actually a variety of links through each attach referring to one mailbox.

Problems in Mailbox System

There room some difficulties with the mailbox device that happen when much more than two processes share a mailbox. Suppose that process 1 sends a blog post to a mailbox the is mutual with process 2 and procedure 3. Procedure 2 and process 3 both try to receive the message. That will obtain it?

Some services to the over problem space :

To permit a link to be created with at many two processes  Allow just one procedure at a time come execute a receive operation To allow the mechanism to arbitrarily pick the receiver. The sender need to be informed who received the message.


The communication in between different processes takes place through calls to send() and also receive () functions. Different design alternatives to implement each duty include post passing by prevent or unblocking. This are also known as synchronous or asynchronous.

Blocking Send: the sending process is blocked until the article is got by the receiving process or through the mailbox.

Non-blocking Send: the sending procedure sends the message and resumes options.

Blocking Receive: the receiver process blocks till a message is available.

Non-Blocking Receiver: the receiver process retrieves either a valid article or a null.


The blog post exchanged via any form of communication resides in a momentary queue. These queues can be imposed in the complying with ways:

Zero Capacity

The queue has a maximum size of zero. The connect cannot have any messages waiting in it. The sender need to wait till the recipient receive the message. The 2 processes need to be synchronized for the deliver of a message. The zero-capacity connect is referred to as a message-passing mechanism without buffering.

Bounded Capacity

The queue has actually a finite length of n. It deserve to store n variety of messages in it. A message is stored in the queue if the is no full and the sender proceeds the execution without any wait. The sender need to block till there is a space available in the queue.

See more: As You Move Left To Right In A Period The Reactivity Of A Metal

Unbounded Capacity

The queue size is infinite and any variety of messages can wait in it. The sender is never ever blocked. That is why the sender is never delayed.