MOS-Mod7-1 IPC

Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

IPC (Interprocess

communication)
Inter-process Communication
• Processes within a system may be independent or cooperating
• Cooperating process can affect or be affected by other processes,
including sharing data
• Reasons for cooperating processes:
• Information sharing
• Computation speedup
• Modularity
• Convenience
• Two models of IPC (1) Shared memory (2) Message passing
Communications Model
• Message Passing • Shared Memory
IPC – 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

• Implementation of communication link


• physical (e.g., shared memory, hardware bus)
• logical (e.g., direct or indirect, synchronous or asynchronous)
IPC – MESSAGE PASSING
• 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?


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 direct communication link

• 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 bidirectional
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
Message Synchronization
• Message passing may be either blocking or nonblocking

• 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
Message Synchronization
• Message passing may be either blocking or nonblocking

• 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
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
• bounded-buffer assumes that there is a fixed buffer size
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