プロセス間通信

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索

プロセス間通信(IPC、テンプレート:Lang-en-short)はコンピュータの動作において複数のプロセス間(の複数のスレッド間)でデータをやりとりするための仕組み。通信するプロセスは同一コンピュータ上にある場合と、ネットワークで接続された別のコンピュータ上にある場合がある。IPC技法は、メッセージパッシング同期共有メモリRPC に分類される。IPC技法のスレッド間の通信の帯域幅とレイテンシは様々であり、やりとりされるデータの種類も様々である。

プロセス群を協調動作させる環境を提供する目的・理由には以下のようなものがある。

IPCを「スレッド間通信」や「アプリケーション間通信」と呼ぶこともある。

IPCとアドレス空間のコンセプトの組合せは、アドレス空間分離の基盤である[1]

主なIPC技法

技法 提供しているOSや環境
ファイル 多くのOS
シグナル 多くのOS。WindowsではCのランタイムライブラリでのみ実装しており、IPCとしての利用は推奨していないテンプレート:要出典
メッセージキュー 多くのOS
ソケット 多くのOS
UNIXドメインソケット POSIX準拠システム
パイプ POSIX準拠システム、Windows
名前付きパイプ POSIX準拠システム、Windows
セマフォ POSIX準拠システム、Windows
共有メモリ POSIX準拠システム、Windows
メモリマップトファイル POSIX準拠システム、Windows
メッセージパッシング
(shared nothing)
MPI パラダイム、Java RMICORBAテンプレート:仮リンク, テンプレート:仮リンクQNX、その他
Binder Android

実装例

IPCとして使われているAPIはいくつかある。プラットフォームに依存しない主なAPIの例を挙げる。

以下は、プラットフォーム固有またはプログラミング言語固有のAPIの例である。

脚注

テンプレート:Reflist

参考文献

関連項目

外部リンク

  • Jochen Liedtke. On µ-Kernel Construction, Proc. 15th ACM Symposium on Operating System Principles (SOSP), December 1995
  • テンプレート:Cite web
  • IPC Shared Memory Messaging