Inter-process-communication-overview

提供:Dev Guides
移動先:案内検索

プロセス間通信-概要

プロセス間通信(IPC)は、あるプロセスと別のプロセスとの通信を含むメカニズムです。 これは通常、1つのシステムでのみ発生します。

通信には2つのタイプがあります-

  • 親プロセスや子プロセスなど、1つのプロセスのみから開始する関連プロセス間。
  • 関連のないプロセス間、または2つ以上の異なるプロセス間。

以下は、このトピックをさらに進める前に知っておく必要がある重要な用語です。

パイプ-2つの関連プロセス間の通信。 メカニズムは半二重です。つまり、最初のプロセスが2番目のプロセスと通信します。 全二重を実現するには、つまり、2番目のプロセスが最初のプロセスと通信するには、別のパイプが必要です。

*FIFO* -2つの無関係なプロセス間の通信。 FIFOは全二重です。つまり、最初のプロセスが2番目のプロセスと通信でき、同時にその逆も可能です。

メッセージキュー-全二重容量の2つ以上のプロセス間の通信。 プロセスは、メッセージを投稿してキューから取得することにより、互いに通信します。 取得されると、メッセージはキューで使用できなくなります。

共有メモリ-2つ以上のプロセス間の通信は、すべてのプロセス間で共有されるメモリを通じて実現されます。 共有メモリは、すべてのプロセスへのアクセスを同期することにより、互いに保護する必要があります。

セマフォ-セマフォは、複数のプロセスへのアクセスを同期するためのものです。 1つのプロセスが(読み取りまたは書き込みのために)メモリにアクセスする場合、アクセスが削除されたときにロック(または保護)して解放する必要があります。 データを保護するには、すべてのプロセスでこれを繰り返す必要があります。

シグナル-シグナルは、シグナルを介して複数のプロセス間で通信するためのメカニズムです。 これは、ソースプロセスが(番号で認識される)シグナルを送信し、宛先プロセスがそれに応じてそれを処理することを意味します。

-このチュートリアルのほとんどすべてのプログラムは、Linuxオペレーティングシステム(Ubuntuで実行)でのシステムコールに基づいています。