THOUSANDS OF FREE BLOGGER TEMPLATES

Thursday, July 16, 2009

Inter Process Communication

  • Mechanism for processes to communicate and to synchronize their actions
  • Message system – processes communicate with each other without resorting to shared variables
  • IPC facility provides two operations:
    -send(message) – message size fixed or variable
    -receive(message)
  • If P and Q wish to communicate, they need to:
    -establish a communication link between them
    -exchange messages via send/receive
  • Implementation of communication link
    -physical (e.g., shared memory, hardware bus)
    -logical (e.g., logical properties)

Direct Communication

  • Processes must name each other explicitly:
    -send (P, message) – send a message to process P
    -receive(Q, message) – receive a message from process Q
  • Properties of communication link
    -Links are established automatically.
    - A link is associated with exactly one pair of communicating
    processes.
    - Between each pair there exists exactly one link.
    - The link may be unidirectional, but is usually bi-directional.
  • Asymmetric variant
    - receive(id, message) – receive a message from any
    process, pid stored in id

Indirect Communication

  • Messages are directed and received from mailboxes (also referred to as ports).
    - Each mailbox has a unique id.
    -Processes can communicate only if they share a mailbox.
  • Properties of communication link
    - Link established only if processes share a common mailbox
    - A link may be associated with many processes.
    - Each pair of processes may share several communication links.

-Link may be unidirectional or bi-directional.

  • Operations
    -create a new mailbox
    - send and receive messages through mailbox
    -destroy a mailbox
  • Primitives are defined as:
    send(A, message) – send a message to mailbox A

receive(A, message) – receive a message from mailbox A

  • Mailbox sharing

-P1, P2, and P3 share mailbox A.

-P1, sends; P2 and P3 receive.

- Who gets the message?

  • Solutions

-Allow a link to be associated with at most two processes.

-Allow only one process at a time to execute a receive operation.

-Allow the system to select arbitrarily the receiver. Sender is notified who the receiver was.

Synchronization

  • Message passing may be either blocking or non-blocking.
  • Blocking is considered synchronous
  • Non-blocking is considered asynchronous
  • send and receive primitives may be either blocking or non-blocking.


0 comments: