INTER PROCESS COMMUNICATION – MESSAGE QUEUE

 Inter Process Communication-Message Queue

A message queue is a linked list of messages stored within the kernel and identified by a message queue identifier. A new queue is created or an existing queue opened by msgget().

New messages are added to the end of a queue by msgsnd(). Every message has a positive long integer type field, a non-negative length, and the actual data bytes (corresponding to the length), all of which are specified to msgsnd() when the message is added to a queue. Messages are fetched from a queue by msgrcv(). We don't have to fetch the messages in a first-in, first-out order. Instead, we canfetch messages based on their type field.

Each message is given an identification or type so that processes can select the appropriate message. Process must share a common key in order to gain access to the queue in the first place.


 MESSAGE QUEUE

      ftok(): is use to generate a unique key.

      msgget(): either returns the message queue identifier for a newly created message queue or returns the identifiers for a queue which exists with the same key value.

      msgsnd(): Data is placed on to a message queue by calling msgsnd().

      msgrcv(): messages are retrieved from a queue.

      msgctl(): It performs various operations on a queue. Generally it is use to destroy message queue.

 

 

 Program :

To perform communication using message queues, following are the steps -

Writer Process:

Post a Comment

Previous Post Next Post