📜  进程间通信-概述

📅  最后修改于: 2021-01-18 06:30:27             🧑  作者: Mango


进程间通信(IPC)是一种机制,涉及一个进程与另一个进程之间的通信。这通常仅在一个系统中发生。

通信可以有两种类型-

  • 在仅从一个进程(例如父进程和子进程)启动的相关进程之间。

  • 在不相关的流程之间,或两个或多个不同的流程之间。

以下是一些在我们进一步讨论该主题之前需要了解的重要术语。

管道-两个相关过程之间的通信。该机制是半双工的,这意味着第一个进程与第二个进程进行通信。为了实现全双工,即第二过程要与第一过程进行通信,需要另一个管道。

FIFO-两个不相关进程之间的通信。 FIFO是全双工的,这意味着第一个进程可以与第二个进程同时通信,反之亦然。

消息队列-两个或多个具有全双工能力的进程之间的通信。进程将通过发布消息并从队列中检索消息来相互通信。检索后,该消息在队列中不再可用。

共享内存-两个或多个进程之间的通信是通过所有进程之间共享的一块内存实现的。共享内存需要通过同步对所有进程的访问来相互保护。

信号量-信号量用于同步访问多个进程。当一个进程想要访问内存(用于读取或写入)时,需要删除该访问时将其锁定(或保护)并释放。所有过程都需要重复此过程以保护数据。

信号-信号是一种通过信令在多个进程之间进行通信的机制。这意味着源进程将发送信号(通过数字识别),而目标进程将进行相应的处理。

注意-本教程中的几乎所有程序都是基于Linux操作系统(在Ubuntu中执行)下的系统调用。