what is IPC?what are different IPC techniques?explain them.what are advantage of one over another?

Inter-Process Communication (IPC) is a set of techniques for the exchange of data among two or more thread in one or more processes. Message passing,shared memory,RPC(remote procedure call) are the IPC techniques. Message passing-Information is exchanged througlh an IPC facilities provided by the OS.Before communication takes place a connection must be established.the name of the other communicator must be known ,be it another process on the same cpu or a process on another cpu.Receipient process must give its permission for communication to take place with an accept connection call. Shared memory model-In shared memory model,processes use “map memory ” system calls to gain access to regions of memory owned by other processes.Normally OS,tries to prevent one process from accessing another process’s memory.In shared memory several processes agree to remove this restriction. They may exchange information by reading and writing data in these shared area.The form of the data and the location are determined by these processes and are not under os control.processes are also responsible for ensuring ath they are not writing to the same location simultaneously. Message passing is useful when smaller numbers of data need to be exdchanged ,because no conflicts need to be avoided.It’s easier to implement than shared memory. Shared memory allows maximum speed and convenience ,as it can be done at memory speeds when with computer.Here challenge is protection and synchronisation.