3.3 Inter-process communication (IPC): Introduction, shared memory system and message passing system.

22516 Operating System MSBTE CO IT 3.3 Inter-process communication (IPC): Introduction, shared memory system and message passing system.

Inter-process communication (IPC)

Inter-process communication (IPC) is a mechanism that allows processes to communicate with each other and synchronize their actions. IPC is crucial in a multi-process, multi-threaded environment where separate processes or threads need to share data or status information, or coordinate their actions.

Here are some common IPC mechanisms:

  1. Pipes: This is one of the simplest methods of IPC. Data written by one process to a pipe is read by another process reading from that pipe. Pipes are typically unidirectional but they can be made bidirectional as well.
  2. Message Queues: Message queues allow processes to exchange data in the form of messages. This is useful when you need to transfer a moderate amount of data and there is no requirement for immediate reading of the data.
  3. Shared Memory: In a shared memory model, two or more processes can access the same segment of memory. One process can write data to this segment, and another process can read this data directly from memory.
  4. Sockets: Sockets allow communication between processes over a network protocol. This can be used for IPC on a single system, or for communication between processes on different systems.
  5. Signals: Signals are a form of software interrupts that are sent to a process by the operating system. Signals can be used to interrupt a process or to have it behave in a certain way.
  6. Semaphores: Semaphores are used to control access to shared resources by multiple processes to prevent conflicts.

Each IPC mechanism has its own strengths and weaknesses, and the choice of which one to use depends on the specific requirements of the system and the processes involved.

 

 

Shared Memory System and Message Passing System.

Shared memory and message passing are two key techniques used for Inter-Process Communication (IPC):

  1. Shared Memory: In the shared memory model, two or more processes share a portion of memory. This memory space is allocated to the processes for sharing data. One process writes data into this shared memory and the other process can read this data directly from there.

Shared memory can be very efficient because it can be done at memory speeds when within a computer. Also, it allows maximum speed and convenience of communication, as it can be done at the speed of memory accesses.

However, it requires synchronization, as multiple processes are reading and writing to the same memory area. If not properly managed, it could lead to race conditions where processes are trying to read and write simultaneously leading to inconsistency.

 


  1. Message Passing System: In the message-passing model, the processes communicate with each other without using shared variables. A process sends a message containing data to another process. The sending process continues execution until the message is sent, and the receiving process waits until it receives the message.

Message passing is a bit slower than shared memory because it requires system calls and it needs the kernel to transfer messages from one process to another. However, it's simpler to implement and use than shared memory, especially in distributed systems. It's also easier to implement in a way that avoids issues such as race conditions.

Also, message-passing systems are easier to implement in a distributed system than shared-memory systems, because they don't require a shared memory bus.

In general, shared memory can be faster and more powerful but requires careful management and synchronization, while message passing is simpler and safer but may be slower and more resource-intensive. The choice between them depends on the specific requirements of the system.

Post a Comment

Previous Post Next Post