Networking and Interprocess Communication

Processes run individually and work independently in their respective address spaces. However, they sometimes need to communicate with each other to pass on information. For processes to cooperate, they need to be able to communicate with each other as well as synchronize their actions. Here are the types of communication that take place between processes:

  • Synchronous communication: Such communication doesn't allow the process to continue with any other work until the communication is over
  • Asynchronous communication: In this communication, the process can continue doing other tasks, and so it supports multitasking and results in better efficiency
  • Remote Procedure Call (RPC): This is a protocol that uses client service techniques for communication where the client cannot do anything, that is, it is suspended until it gets a response from the server

These communications can be unidirectional or bidirectional. To enable any form of communication between processes, the following popular interprocess communication (IPC) mechanisms are used: pipes, FIFOs (named pipes), sockets, message queues, and shared memory. Pipes and FIFO enable unidirectional communication, whereas sockets, message queues, and shared memory enable bidirectional communication. 

In this chapter, we will learn how to make the following recipes so that we can establish communication between processes:

  • Communicating between processes using pipes
  • Communicating between processes using FIFO
  • Communicating between the client and server using socket programming
  • Communicating between processes using a UDP socket
  • Passing a message from one process to another using the message queue
  • Communicating between processes using shared memory

Let's begin with the first recipe!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset