SlideShare a Scribd company logo
1 of 20
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

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.pptKAnurag2
 
Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Inter Process Communication Presentation[1]
Inter Process Communication Presentation[1]Ravindra Raju Kolahalam
 
Task communication
Task communicationTask communication
Task communication1jayanti
 
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 ipcVaibhav Khanna
 
Communication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed SystemsCommunication And Synchronization In Distributed Systems
Communication And Synchronization In Distributed Systemsguest61205606
 
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 Systemsguest0f5a7d
 
Characterization of communication.ppt
Characterization of communication.pptCharacterization of communication.ppt
Characterization of communication.pptAthira Ravindranathan
 
Group Communication in distributed Systems.docx
Group Communication in distributed Systems.docxGroup Communication in distributed Systems.docx
Group Communication in distributed Systems.docxMsecMca
 
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.pptgezaegebre1
 
Inter process communication
Inter process communicationInter process communication
Inter process communicationGowriLatha1
 

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
 
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
 
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

College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations120cr0395
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingrknatarajan
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Call Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...ranjana rawat
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...RajaP95
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSISrknatarajan
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 

Recently uploaded (20)

College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and workingUNIT-V FMM.HYDRAULIC TURBINE - Construction and working
UNIT-V FMM.HYDRAULIC TURBINE - Construction and working
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
(TARA) Talegaon Dabhade Call Girls Just Call 7001035870 [ Cash on Delivery ] ...
 
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
IMPLICATIONS OF THE ABOVE HOLISTIC UNDERSTANDING OF HARMONY ON PROFESSIONAL E...
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
UNIT-III FMM. DIMENSIONAL ANALYSIS
UNIT-III FMM.        DIMENSIONAL ANALYSISUNIT-III FMM.        DIMENSIONAL ANALYSIS
UNIT-III FMM. DIMENSIONAL ANALYSIS
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 

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.