SlideShare a Scribd company logo
Interprocess Communication
 Processes executing concurrently in the operating system may
be either independent processes or cooperating processes.
Independent Process
 A process which cannot affect or be affected by the other
processes executing in the system.
 Any process that does not share data with any other process is
independent.
Cooperating Process
 Process which can affect or be affected by the other processes
executing in the system.
 Any process that shares data with other processes is a
cooperating process.
Interprocess Communication
Reasons for providing an environment that allows process cooperation:
Information sharing.
 Since several users may be interested in the same piece of information
(for instance, a shared file), we must provide an environment to allow
concurrent access to such information.
Computation speedup.
 In order to run a particular task fast, break it into subtasks, each of
which will be executing in parallel with the others. Such a speedup can
be achieved only if the computer has multiple processing cores.
Modularity.
 In order to construct the system in a modular fashion, dividing the
system functions into separate processes or threads,
Convenience.
Usually individual users may work on many tasks at the same time. For
instance, a user may be editing, listening to music, and compiling in
parallel.
Interprocess Communication
 Cooperating processes require an inter-process
communication (IPC) mechanism that will allow them to
exchange data and information.
 There are two fundamental models of inter-process
communication: shared memory
message passing.
 In the shared-memory model, a region of memory that is shared
by cooperating processes is established. Processes can then
exchange information by reading and writing data to the shared
region.
 In the message-passing model, communication takes place by
means of messages exchanged between the cooperating
processes.
Interprocess Communication
Shared-Memory Systems
 Interprocess communication using shared memory requires
communicating processes to establish a region of shared
memory.
 A shared-memory region resides in the address space of the
process creating the shared-memory segment.
 Other processes that wish to communicate using this shared-
memory segment must attach it to their address space.
 They can then exchange information by reading and writing
data in the shared areas.
 The processes are also responsible for ensuring that they are
not writing to the same location simultaneously.
Shared-Memory Systems-Producer–consumer
problem
Producer–consumer problem
 A producer process produces information that is consumed by a
consumer process.
 Eg:A server as a producer and a client as a consumer. A web server
produces (that is, provides) HTML files and images, which are
consumed (that is, read) by the client web browser
 Producer–consumer problem uses shared memory.
 A buffer of items that can be filled by the producer and emptied by
the consumer.
 This buffer will reside in a region of memory that is shared by the
producer and consumer processes.
 A producer can produce one item while the consumer is consuming
another item.
 The producer and consumer must be synchronized, so that the
consumer does not try to consume an item that has not yet been
produced.
Shared-Memory Systems-Producer–consumer
problem
 Two types of buffers can be used.
 Unbounded buffer
 Bounded buffer
Unbounded buffer
 No limit on the size of the buffer.
 The consumer may have to wait for new items, but the producer
can always produce new items.
Bounded buffer
 A fixed buffer size.
 The consumer must wait if the buffer is empty
 The producer must wait if the buffer is full.
Shared-Memory Systems-Producer–consumer
problem using Bounded Buffer
 The shared buffer is implemented as a circular array with two
logical pointers:in and out.
 The variable in points to the next free position in the buffer;
out points to the first full position in the buffer.
 The buffer is empty when in ==out;
 The buffer is full when ((in + 1) % BUFFER SIZE) == out.
Shared-Memory Systems-Producer–consumer
problem using Bounded Buffer
Message-Passing Systems
 Message passing allows processes to communicate and to
synchronize their actions without using shared memory
 Useful in a distributed environment, where the communicating
processes may reside on different computers connected by a
network.
 Eg: An Internet chat program where chat participants
communicate with one another by exchanging messages.
 A message-passing facility provides at least two operations:
send(message)
receive(message)
Message-Passing Systems
 If processes P and Q want to communicate, they must send messages
to and receive messages from each other:
 A communication link must exist between them.
Naming
 Processes that want to communicate must have a way to refer to each
other.
 They can use either direct or indirect communication.
 Under direct communication, each process that wants to
communicate must explicitly name the recipient or sender of the
communication.
 In this scheme, the send() and receive() primitives are defined as:
send(P, message)—Send a message to process P.
receive(Q, message)—Receive a message from process Q.
Message-Passing Systems
 A communication link in this scheme has the following
properties:
 A link is established automatically between every pair of
processes that want to communicate. The processes need
to know only each other’s identity to communicate.
 A link is associated with exactly two processes.
 Between each pair of processes, there exists exactly one
link.
 This scheme exhibits symmetry in addressing; that is, both the
sender process and the receiver process must name the other to
communicate.
Message-Passing Systems
Asymmetry in addressing.
 Only the sender names the recipient; the recipient is not
required to name the sender.
 In this scheme, the send() and receive() primitives are defined
as follows:
send(P, message)—Send a message to process P.
receive(id, message)—Receive a message from any
process.
 Variable id is set to the name of the process with which
communication has taken place.
Message-Passing Systems
Indirect communication
 The messages are sent to and received from mailboxes, or
ports.
 A mailbox is an object into which messages can be placed by
processes and from which messages can be removed.
 Each mailbox has a unique identification.
 A process can communicate with another process via a number
of different mailboxes, but two processes can communicate
only if they have a shared mailbox.
Message-Passing Systems
 The send() and receive() primitives are defined as follows
send(A, message)-Send a message to mailbox A.
receive(A, message)—Receive a message from mailbox A.
 In this scheme, a communication link has the following
properties:
 A link is established between a pair of processes only if both
members of the pair have a shared mailbox.
 A link may be associated with more than two processes.
 Between each pair of communicating processes, a number of
different links may exist, with each link corresponding to one
mailbox.
 Let processes P1, P2, and P3 all share mailbox A.
 Process P1 sends a message to A, while both P2 and P3
execute a receive() from A.
 Which process will receive the message sent by P1 ?
 Allow a link to be associated with two processes at most.
 Allow at most one process at a time to execute a receive()
operation.
 Allow the system to select arbitrarily which process will
receive the message (that is, either P2 or P3, but not
both,will receive the message).
Message-Passing Systems
Synchronization
 Communication between processes takes place through calls to
send() and receive() primitives.
 Message passing may be either blocking or nonblocking
also known as synchronous and asynchronous
 Blocking send. The sending process is blocked until the
message is received by the receiving process or by the mailbox.
 Non blocking send. The sending process sends the message
and resumes operation.
 Blocking receive. The receiver blocks until a message is
available.
 Nonblocking receive. The receiver recieves either a valid
message or a null.
Message-Passing Systems
Buffering
 Whether communication is direct or indirect, messages
exchanged by communicating processes reside in a temporary
queue.
 Such queues can be implemented in three ways:
Zero capacity. The queue has a maximum length of zero; thus,
the link cannot have any messages waiting in it. In this case,
the sender must block until the recipient receives the message.
Message-Passing Systems
Bounded capacity. The queue has finite length n; thus, at most n
messages can reside in it. If the queue is not full when a new
message is sent, the message is placed in the queue (either the
message is copied or a pointer to the message is kept), and the
sender can continue execution without waiting. The link’s
capacity is finite, however. If the link is full, the sender must
block until space is available in the queue.
Unbounded capacity. The queue’s length is potentially infinite;
thus, any number of messages can wait in it. The sender never
blocks.

More Related Content

Similar to 5_Interprocess Communication.pptx

Chapter 3 - Processes
Chapter 3 - ProcessesChapter 3 - Processes
Chapter 3 - Processes
Wayne Jones Jnr
 
Module-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.ppt
Module-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.pptModule-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.ppt
Module-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.ppt
KAnurag2
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Ravindra Raju Kolahalam
 
Os
OsOs
Task communication
Task communicationTask communication
Task communication
1jayanti
 
Operating system 19 interacting processes and ipc
Operating system 19 interacting processes and ipcOperating system 19 interacting processes and ipc
Operating system 19 interacting processes and ipc
Vaibhav Khanna
 
Dos unit 2
Dos unit 2Dos unit 2
Dos unit 2
JebasheelaSJ
 
Communication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed SystemsCommunication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed Systemsguest61205606
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
guest0f5a7d
 
Communication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed SystemsCommunication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed Systems
guest61205606
 
Characterization of communication.ppt
Characterization of communication.pptCharacterization of communication.ppt
Characterization of communication.ppt
Athira Ravindranathan
 
Lecture03-IPC.ppt
Lecture03-IPC.pptLecture03-IPC.ppt
Lecture03-IPC.ppt
farhanali32014
 
MPI.pptx
MPI.pptxMPI.pptx
MPI.pptx
YuvrajWadavale1
 
Group Communication in distributed Systems.docx
Group Communication in distributed Systems.docxGroup Communication in distributed Systems.docx
Group Communication in distributed Systems.docx
MsecMca
 
operating system for computer engineering ch3.ppt
operating system for computer engineering ch3.pptoperating system for computer engineering ch3.ppt
operating system for computer engineering ch3.ppt
gezaegebre1
 
Inter process communication
Inter process communicationInter process communication
Inter process communication
GowriLatha1
 

Similar to 5_Interprocess Communication.pptx (20)

Chapter 3 - Processes
Chapter 3 - ProcessesChapter 3 - Processes
Chapter 3 - Processes
 
Ch03
Ch03Ch03
Ch03
 
Module-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.ppt
Module-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.pptModule-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.ppt
Module-6 process managedf;jsovj;ksdv;sdkvnksdnvldknvlkdfsment.ppt
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]
 
Os
OsOs
Os
 
Ch4
Ch4Ch4
Ch4
 
Ch3
Ch3Ch3
Ch3
 
Task communication
Task communicationTask communication
Task communication
 
Operating system 19 interacting processes and ipc
Operating system 19 interacting processes and ipcOperating system 19 interacting processes and ipc
Operating system 19 interacting processes and ipc
 
Dos unit 2
Dos unit 2Dos unit 2
Dos unit 2
 
Communication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed SystemsCommunication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed Systems
 
Distributed Systems
Distributed SystemsDistributed Systems
Distributed Systems
 
Communication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed SystemsCommunication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed Systems
 
Characterization of communication.ppt
Characterization of communication.pptCharacterization of communication.ppt
Characterization of communication.ppt
 
Lecture 06
Lecture 06Lecture 06
Lecture 06
 
Lecture03-IPC.ppt
Lecture03-IPC.pptLecture03-IPC.ppt
Lecture03-IPC.ppt
 
MPI.pptx
MPI.pptxMPI.pptx
MPI.pptx
 
Group Communication in distributed Systems.docx
Group Communication in distributed Systems.docxGroup Communication in distributed Systems.docx
Group Communication in distributed Systems.docx
 
operating system for computer engineering ch3.ppt
operating system for computer engineering ch3.pptoperating system for computer engineering ch3.ppt
operating system for computer engineering ch3.ppt
 
Inter process communication
Inter process communicationInter process communication
Inter process communication
 

Recently uploaded

Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
PrashantGoswami42
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
MdTanvirMahtab2
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfCOLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
Kamal Acharya
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
Robbie Edward Sayers
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
abh.arya
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
Intella Parts
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
ssuser9bd3ba
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
Kamal Acharya
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
Pipe Restoration Solutions
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
Kamal Acharya
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
ShahidSultan24
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 

Recently uploaded (20)

Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.Quality defects in TMT Bars, Possible causes and Potential Solutions.
Quality defects in TMT Bars, Possible causes and Potential Solutions.
 
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
Industrial Training at Shahjalal Fertilizer Company Limited (SFCL)
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdfCOLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
COLLEGE BUS MANAGEMENT SYSTEM PROJECT REPORT.pdf
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
Democratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek AryaDemocratizing Fuzzing at Scale by Abhishek Arya
Democratizing Fuzzing at Scale by Abhishek Arya
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Forklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella PartsForklift Classes Overview by Intella Parts
Forklift Classes Overview by Intella Parts
 
LIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.pptLIGA(E)11111111111111111111111111111111111111111.ppt
LIGA(E)11111111111111111111111111111111111111111.ppt
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
The Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdfThe Benefits and Techniques of Trenchless Pipe Repair.pdf
The Benefits and Techniques of Trenchless Pipe Repair.pdf
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
Cosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdfCosmetic shop management system project report.pdf
Cosmetic shop management system project report.pdf
 
addressing modes in computer architecture
addressing modes  in computer architectureaddressing modes  in computer architecture
addressing modes in computer architecture
 
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 

5_Interprocess Communication.pptx

  • 1.
  • 2. Interprocess Communication  Processes executing concurrently in the operating system may be either independent processes or cooperating processes. Independent Process  A process which cannot affect or be affected by the other processes executing in the system.  Any process that does not share data with any other process is independent. Cooperating Process  Process which can affect or be affected by the other processes executing in the system.  Any process that shares data with other processes is a cooperating process.
  • 3. Interprocess Communication Reasons for providing an environment that allows process cooperation: Information sharing.  Since several users may be interested in the same piece of information (for instance, a shared file), we must provide an environment to allow concurrent access to such information. Computation speedup.  In order to run a particular task fast, break it into subtasks, each of which will be executing in parallel with the others. Such a speedup can be achieved only if the computer has multiple processing cores. Modularity.  In order to construct the system in a modular fashion, dividing the system functions into separate processes or threads, Convenience. Usually individual users may work on many tasks at the same time. For instance, a user may be editing, listening to music, and compiling in parallel.
  • 4. Interprocess Communication  Cooperating processes require an inter-process communication (IPC) mechanism that will allow them to exchange data and information.  There are two fundamental models of inter-process communication: shared memory message passing.  In the shared-memory model, a region of memory that is shared by cooperating processes is established. Processes can then exchange information by reading and writing data to the shared region.  In the message-passing model, communication takes place by means of messages exchanged between the cooperating processes.
  • 6. Shared-Memory Systems  Interprocess communication using shared memory requires communicating processes to establish a region of shared memory.  A shared-memory region resides in the address space of the process creating the shared-memory segment.  Other processes that wish to communicate using this shared- memory segment must attach it to their address space.  They can then exchange information by reading and writing data in the shared areas.  The processes are also responsible for ensuring that they are not writing to the same location simultaneously.
  • 7. Shared-Memory Systems-Producer–consumer problem Producer–consumer problem  A producer process produces information that is consumed by a consumer process.  Eg:A server as a producer and a client as a consumer. A web server produces (that is, provides) HTML files and images, which are consumed (that is, read) by the client web browser  Producer–consumer problem uses shared memory.  A buffer of items that can be filled by the producer and emptied by the consumer.  This buffer will reside in a region of memory that is shared by the producer and consumer processes.  A producer can produce one item while the consumer is consuming another item.  The producer and consumer must be synchronized, so that the consumer does not try to consume an item that has not yet been produced.
  • 8. Shared-Memory Systems-Producer–consumer problem  Two types of buffers can be used.  Unbounded buffer  Bounded buffer Unbounded buffer  No limit on the size of the buffer.  The consumer may have to wait for new items, but the producer can always produce new items. Bounded buffer  A fixed buffer size.  The consumer must wait if the buffer is empty  The producer must wait if the buffer is full.
  • 9. Shared-Memory Systems-Producer–consumer problem using Bounded Buffer  The shared buffer is implemented as a circular array with two logical pointers:in and out.  The variable in points to the next free position in the buffer; out points to the first full position in the buffer.  The buffer is empty when in ==out;  The buffer is full when ((in + 1) % BUFFER SIZE) == out.
  • 11. Message-Passing Systems  Message passing allows processes to communicate and to synchronize their actions without using shared memory  Useful in a distributed environment, where the communicating processes may reside on different computers connected by a network.  Eg: An Internet chat program where chat participants communicate with one another by exchanging messages.  A message-passing facility provides at least two operations: send(message) receive(message)
  • 12. Message-Passing Systems  If processes P and Q want to communicate, they must send messages to and receive messages from each other:  A communication link must exist between them. Naming  Processes that want to communicate must have a way to refer to each other.  They can use either direct or indirect communication.  Under direct communication, each process that wants to communicate must explicitly name the recipient or sender of the communication.  In this scheme, the send() and receive() primitives are defined as: send(P, message)—Send a message to process P. receive(Q, message)—Receive a message from process Q.
  • 13. Message-Passing Systems  A communication link in this scheme has the following properties:  A link is established automatically between every pair of processes that want to communicate. The processes need to know only each other’s identity to communicate.  A link is associated with exactly two processes.  Between each pair of processes, there exists exactly one link.  This scheme exhibits symmetry in addressing; that is, both the sender process and the receiver process must name the other to communicate.
  • 14. Message-Passing Systems Asymmetry in addressing.  Only the sender names the recipient; the recipient is not required to name the sender.  In this scheme, the send() and receive() primitives are defined as follows: send(P, message)—Send a message to process P. receive(id, message)—Receive a message from any process.  Variable id is set to the name of the process with which communication has taken place.
  • 15. Message-Passing Systems Indirect communication  The messages are sent to and received from mailboxes, or ports.  A mailbox is an object into which messages can be placed by processes and from which messages can be removed.  Each mailbox has a unique identification.  A process can communicate with another process via a number of different mailboxes, but two processes can communicate only if they have a shared mailbox.
  • 16. Message-Passing Systems  The send() and receive() primitives are defined as follows send(A, message)-Send a message to mailbox A. receive(A, message)—Receive a message from mailbox A.  In this scheme, a communication link has the following properties:  A link is established between a pair of processes only if both members of the pair have a shared mailbox.  A link may be associated with more than two processes.  Between each pair of communicating processes, a number of different links may exist, with each link corresponding to one mailbox.
  • 17.  Let processes P1, P2, and P3 all share mailbox A.  Process P1 sends a message to A, while both P2 and P3 execute a receive() from A.  Which process will receive the message sent by P1 ?  Allow a link to be associated with two processes at most.  Allow at most one process at a time to execute a receive() operation.  Allow the system to select arbitrarily which process will receive the message (that is, either P2 or P3, but not both,will receive the message).
  • 18. Message-Passing Systems Synchronization  Communication between processes takes place through calls to send() and receive() primitives.  Message passing may be either blocking or nonblocking also known as synchronous and asynchronous  Blocking send. The sending process is blocked until the message is received by the receiving process or by the mailbox.  Non blocking send. The sending process sends the message and resumes operation.  Blocking receive. The receiver blocks until a message is available.  Nonblocking receive. The receiver recieves either a valid message or a null.
  • 19. Message-Passing Systems Buffering  Whether communication is direct or indirect, messages exchanged by communicating processes reside in a temporary queue.  Such queues can be implemented in three ways: Zero capacity. The queue has a maximum length of zero; thus, the link cannot have any messages waiting in it. In this case, the sender must block until the recipient receives the message.
  • 20. Message-Passing Systems Bounded capacity. The queue has finite length n; thus, at most n messages can reside in it. If the queue is not full when a new message is sent, the message is placed in the queue (either the message is copied or a pointer to the message is kept), and the sender can continue execution without waiting. The link’s capacity is finite, however. If the link is full, the sender must block until space is available in the queue. Unbounded capacity. The queue’s length is potentially infinite; thus, any number of messages can wait in it. The sender never blocks.