Home | | Operating Systems | Interprocess Communication

Chapter: Operating Systems : Process Scheduling and Synchronization

Interprocess Communication

Operating systems provide the means for cooperating processes to communicate with each other via an interprocess communication (PC) facility.

INTERPROCESS COMMUNICATION

 

Operating       systems       provide       the  means  for  cooperating  processes  to communicate with          each   other via     an  interprocess communication (PC) facility.

IPC       provides  a  mechanism  to  allow  processes  to  communicate  and  to synchronize their actions.IPC is best provided by a message passing system.

 

       Basic Structure:

       If processes P and Q want to communicate, they must send messages to and receive messages from each other; a communication link must exist between them.

 

Physical implementation of  the link  is  done  through  a hardware bus  , network etc,

 

There are        several methods for logically implementing a  link  and  the operations:

1.       Direct or indirect communication

2.       Symmetric or asymmetric communication

3.       Automatic or explicit buffering

4.       Send by copy or send by reference

5.       Fixed-sized or variable-sized messages

 

1. Naming

 

Processes that want to communicate must have a way to refer to each other.

 

They can use either direct or indirect communication.

 

1.1. Direct Communication

 

Each process that wants to communicate must explicitly name the recipient orsender of the communication.

 

A communication link in this scheme has the following properties:

 

A  link  is       established  automatically  between  every  pair  of processes that  want  to  communicate. The processes need to know only each other's identity to communicate.

 

       A link is associated with exactly two processes.

 

       Exactly one link exists between each pair of processes.

 

       There are two ways of addressing namely

 

       Symmetry in addressing

 

       Asymmetry in addressing

 

In  symmetry in  addressing, the send  and  receive primitives   are defined as:

send(P, message)  Send a message to process P      

receive(Q, message) Receive a message from Q      

In  asymmetry in  addressing ,  the       send  & receive primitives       are defined as:

send (p, message)  send a message to process p     

receive(id, message) receive message from any process,

 

id is set to the name of the process with which communication has taken place

 

1.2. Indirect Communication

 

With indirect communication, the messages are sent to and received from mailboxes,or ports.

 

       The send and receive primitives are defined as follows:

 

       send (A, message) Send a message to mailbox A.

 

       receive (A, message) Receive a message from mailbox A.

 

       A communication link has the following properties:

 

       A link is established between a pair of processes only if both members of the pair have a shared mailbox.

 

       A link may be associated with more than two processes.

 

       A number of different links may exist between each pair of communicating processes, with each link corresponding to one mailbox

 

1.3. Buffering

 

       A link has some capacity that determines the number of message that can reside in it temporarily. This property can be viewed as a queue of messages attached to the link.

 

       There are three ways that such a queue can be implemented.

 

       Zero capacity: Queue length of maximum is 0. No message is waiting in a queue. The sender must wait until the recipient receives the message. (Message system with no buffering)

 

 

       Bounded capacity: The queue has finite length n. Thus at most n messages can reside in it.

 

       Unbounded capacity: The queue has potentially infinite length. Thus any number of messages can wait in it. The sender is never delayed.

 

1.4 Synchronization

 

Message passing may be either blocking or non-blocking.

 

       Blocking Send - The sender blocks itself till the message sent by it is received by the receiver.

 

       Non-blocking Send - The sender does not block itself after sending the message but continues with its normal operation.

 

Blocking Receive-  The receiver blocks itself until  it  receives the message.

 

Non-blocking Receive–The receiver does not block itself.

 

There are two levels of communication

 

       Low – level form of communication – eg. Socket

 

       High – level form of communication – eg.RPC , RMI

 


Study Material, Lecturing Notes, Assignment, Reference, Wiki description explanation, brief detail
Operating Systems : Process Scheduling and Synchronization : Interprocess Communication |


Privacy Policy, Terms and Conditions, DMCA Policy and Compliant

Copyright © 2018-2024 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.