INTERPROCESS COMMUNICATION

Processes interact with one another and synchronize their actions. In order for processes to cooperate with one another they have to literally "talk" to each other by sending messages. The Interprocess-communication facility or IPC provides such a message system.

Structure

The IPC provides two operations: send (message) and receive (message). The send operation may vary from a fixed to a variable size. The fixed-sized message uses a simple hardware design while making programming difficult due to limitations of the hardware implementation. On the other hand, variable-sized messages require a complex hardware design but at the same time making things esay for the programmer.

When two processes communicate or "talk" to each other there must be a communication link between. There are several methods to implement the logical design:

� Direct or Indirect communication

� Symmetric or Asymmetric communication

� Automatic buffering

Direct Communication

It occurs when two processes communicate, or link, with ecah toher and have to name each other when using the send and receive functions.

SEND(P,message)

RECEIVE(P,message)

The link may be unidirectional, receive or send but not both, or bidirectional, receive and send at the same time.

Indirect Communication

This is a link where messages are sent to and received from mailboxes or PC literally, "ports". In order to have at least a pair of processes communicating there must be at least a common mailbox shared. The advantage over direct is that it gives the capability of making connection with more than two processes.

Direct and Indirect have in common the property of choosing unidirectional or bidirectional.

Symmetric Communication

It has the same properties than of Direct Communication.

Assymmetric Communication

It also has the properties of Direct Communication but it requires the sneder to name the reciver, in the meantime the receiver does not need to have a name for the sender.
SEND(P,message)

RECEIVE(any P,message)

Buffering

It refers to the capacity of messages residing in a link queue. There are three types of queue implementation. A zero capacity queue has 0 space for messages to wait, so there will be a delay time when sending a message because you don ot know whether the message was received or not. In bounded capacity queue, the space available for messages to reside on is N space. When this queue becomes full, then there is delay until space is available again. On the other hand, unbounded capacity has infinite space available and messages are never delayed. Both bounded and unbounded are called automatic buffering.

LinkExchange
LinkExchange Member Free Home Pages at GeoCities

Hosted by www.Geocities.ws

1