IPC

Stands for "Interprocess Communication." IPC is a feature of modern operating systems that enables processes to communicate with each other. It improves performance by allowing concurrent processes to share system resources efficiently.

The two primary methods of interprocess communication are memory sharing and message passing. Memory sharing involves indirect communication since the OS manages RAM usage and allocation. Message passing requires active communication between processes. For example, one process may request exclusive access to a specific resource, such as a file, from another process. Message passing is an effective way to ensure two applications do not access the same block of data at the same time.

When actively passing messages between processes, it is important to avoid deadlocks and race conditions. A deadlock may cause a process to become unresponsive, while a race condition may produce errors and unexpected results.

IPC Examples

Below are some common ways operating systems use interprocess communication:

  1. File access - limiting access to files on a local or remote storage device to one process at a time
  2. Network communication - ensuring data sent through a network socket does not overlap
  3. Shared memory - allowing mulitple processes to use the same block of memory, often through the use of a buffer that dynamically allocates free memory
  4. Signals - sending system messages to processes to notify them of an event, similar to an interrupt
Updated July 21, 2021 by Per C.

quizTest Your Knowledge

Which of the following is an example of ERP software?

A
Microsoft Dynamics
0%
B
Adobe Photoshop
0%
C
Google Slides
0%
D
Apple Final Cut Pro
0%
Correct! Incorrect!     View the ERP definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of IPC on this page is an original definition written by the TechTerms.com team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of TechTerms.com is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.