 Hello everyone, as we already introduced with inter process communication, today we are going to learn more about IPC. The learning outcome of this session are at the end of this session student will be able to define inter process communication using message passing system and interpret direct communication technique for cooperating processes. Now recall from last video that we already studied cooperating process concept. So how cooperating process communicate in shared memory environment? So as we already studied the cooperating process in last video, we already know that cooperating process can communicate using a common buffer pool if we are implementing it using shared memory. So this common buffer pool can be implemented by an application programmer. So the code is written by application programmer explicitly. As we studied producer consumer problem which is very good example of shared memory environment used by cooperating process for communication. In producer consumer problem, producer and consumer communicate with each other using common buffer pool and this buffer is implemented by application programmer explicitly. To get the same effect of communication between cooperating process another facility exists in operating system that is called as a message passing system. Now this message passing system is a mechanism which allows process to communicate and synchronize their action without sharing a common address space. As we already know that there are two fundamental inter process communication model they are message passing system and shared memory. Now as shown in this figure the message passing system processes communicate using information exchange. So process A and B can communicate between each other just by exchanging an information while in shared memory process A and B can communicate with each other using a shared memory region. This shared memory region is established at the beginning and then process A and B communicate with each other without any kernel intervention. So the shared memory is more faster than message passing because message passing system is implemented using system calls each time that system call has to be execute and that is why message passing system is slower than shared memory. Now from the two fundamental model we are going to learn about message passing system today. It allows process to communicate and synchronize their action without sharing same address space. Here processes do not share the same address space but they communicate with each other just by exchanging an information. So this message passing system is basically used in distributed system. Now what is distributed system? Distributed system is a system where the processes which wish to communicate with each other are reside on different systems and all these systems are connected with internet. So the process present on different system communicate with each other just by passing message through each other. So this system is the example of this system is internet chat application or our WhatsApp application where the participants communicate with each other by exchanging message but all of them require internet connection. So participants those who are connected with internet can communicate with each other and that system is called as a distributed system. So this message passing facility provides two operations send message and receive message. The message here the message used here the size of that message is either fixed or it either variable whenever two processes suppose process P and process Q wants to communicate with each other then the communication link must exist between these two process. Now the communication link can be either physical link or it may be a logical link. There are different implementation issues for this communication link. How are links established? Can a link be associated with more than two processes? How many links can be between every pair of communicating process? What is the capacity of link is the size of message that the link can accommodate is fixed or variable is a link unidirectional or bidirectional. Now all these are issues while implementing a communication link between two processes whenever the two process wish to communicate with each other. Communication link can be implemented either using physical way or in logical way. Now just pause a video and think how that communication link can be implemented. There are two ways physical and logical. So just pause a video and write down your answer that how communication link can be implemented using physical way or using logical way. Let us see the implementation of communication link. The communication link can be implemented in physical way. There are different types shared memory, hardware, bus, network. In logical way there are again different types that is direct or indirect mechanism, synchronous or asynchronous mechanism, automatic or explicit buffering mechanism. So here instead of going in detail of physical implementation of communication link we are going to see the logical implementation of communication link. So let us see the direct communication of direct communication between two processes. Now in direct communication processes must name each other. There is one sender process and there is receiver process. So both sender and receiver must know each other. The send and receive primitives are send p, message means send a message to process p. Receive q, message means receive a message from process q. The properties of communication link are links are established automatically. A link is associated with exactly one pair of communicating process. In each pair there exists exactly one link. The link may be unidirectional but it is usually is a bidirectional. Now as I already said that processes must name each other explicitly. So there is a sending process and this is a sending process and this is a receiving process. Both contains message passing module. So sender process send a message to process p and process p receive a message from process q using message passing module. Now as here both sender and receiver must know each other this type of direct communication is called as a symmetric communication. There is another method of direct communication where only sender name the recipient. The recipient is not required to name the sender. So the send and receive primitives are send p, message means send a message to process p. Receive id, message means receive a message from any process. Now from any process means the id which is mentioned here is nothing but identifier of the sender process. Here receiver process will identify the sender using only id. So properties of communication link are same that is links are established automatically link is associated with exactly one pair of communicating process between each pair there exists exactly one link. The link may be unidirectional but usually here it is a bidirectional. So here only sender has to name the recipient. So sending and receiving process both have a message passing module send primitive is send a message to process p but receiving process will receive a message using an identifier. So here as receiver do not know the sender it knows the sender using identifier this type of communication is called as a asymmetric communication. Now there is one disadvantage of this direct communication that is limited modularity. Now as here we already studied that direct communication contains two types symmetric and asymmetric. In symmetric communication both sender and receiver should name each other while in asymmetric communication sender must name the receiver but receiver get the sender using its identifier. So if process changes its identifier then it is necessary to change the identifier at all places that uses it. For example if receiver process saves all messages if sender changes its identifier then we must change in all saved message means a sender process sends message to the receiver and there are many receivers who saves that message which is received from the sender and this sender process changes its identifier then it is necessary to find out the old identifier at all receiver side and change that old identifier to new identifier of that sender process. So this is quite time consuming task and this is this gives limited modularity. So this is one of the disadvantage of direct communication. So this is what about the direct communication these are the references thank you.