0% found this document useful (0 votes)
35 views14 pages

Interprocess Communications New

The document discusses interprocess communication and message passing. Cooperating processes need interprocess communication to share information, speed up computation, and modularize programs. The two main models of interprocess communication are shared memory, where processes communicate via a shared buffer, and message passing, where one process sends a message to another via the kernel. Message passing can be direct, with processes naming each other explicitly, or indirect, with processes communicating through mailboxes. Synchronization can be blocking or non-blocking, and links between processes can have zero, bounded, or unbounded buffering capacity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views14 pages

Interprocess Communications New

The document discusses interprocess communication and message passing. Cooperating processes need interprocess communication to share information, speed up computation, and modularize programs. The two main models of interprocess communication are shared memory, where processes communicate via a shared buffer, and message passing, where one process sends a message to another via the kernel. Message passing can be direct, with processes naming each other explicitly, or indirect, with processes communicating through mailboxes. Synchronization can be blocking or non-blocking, and links between processes can have zero, bounded, or unbounded buffering capacity.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 14

Interprocesses Communication

Processes
• Cooperating Processes
• Intercrosses Communication
Interprocess Communication
• Processes within a system may be independent or
cooperating
• Independent process cannot affect or be affected by the
execution of another process
• Cooperating process can affect or be affected by the
execution of another process
• Advantages of process cooperation
– Information sharing
– Computation speed-up
– Modularity
– Convenience
Cooperating Processes

• Cooperating processes need inter process communication


(IPC)

• Two models of IPC


– Shared memory: A shared buffer is used by co-operating
processes
– Message passing: A message is passed by one process to
another via kernel
Communications Models
Producer-Consumer Problem
• Paradigm for cooperating processes, producer process
produces information that is consumed by a consumer
process
– unbounded-buffer places no practical limit on the size of
the buffer
• Producer produces one by one and keeps producing
• Consumer consumes one by one
• Check: Consumer should not try to consume item
being produced by Producer
– bounded-buffer assumes that there is a fixed buffer size
• Producer must wait if buffer is full
• Consumer must wait if buffer is empty
Interprocess Communication – Message Passing

• 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
Interprocess Communication – Message Passing

• Implementation of communication link


– Physical:
• Shared memory
• Network
– Logical:
• Direct or indirect
• Synchronous or asynchronous
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
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
Indirect Communication
• Operations
– create a new mailbox (port)
– send and receive messages through mailbox
– destroy a mailbox
• Primitives are defined as:
send(A, message) – send a message to mailbox A
receive(B, message) – receive a message from
mailbox B
Implementation Questions
• How are links established?
• Can a link be associated with more than two processes?
• How many links can there be between every pair of
communicating processes?
• What is the capacity of a link?
• Is the size of a message that the link can accommodate fixed
or variable?
• Is a link unidirectional or bi-directional?
Synchronization
• Message passing may be either blocking or non-blocking
• Blocking is considered synchronous
– Blocking send has the sender block until the message
is received
– Blocking receive has the receiver block until a
message is available
• Non-blocking is considered asynchronous
– Non-blocking send has the sender send the message
and continue
– Non-blocking receive has the receiver receive a valid
message or null
Buffering
• Queue of messages attached to the link; implemented
in one of three ways
1. Zero capacity – 0 messages
Sender must wait for receiver (rendezvous)
2. Bounded capacity – finite length of n messages
Sender must wait if link full
3. Unbounded capacity – infinite length
Sender never waits

You might also like