プロセス間通信

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

プロセス間通信(IPC、: interprocess communication)はコンピュータの動作において複数のプロセス間(の複数のスレッド間)でデータをやりとりするための仕組み。通信するプロセスは同一コンピュータ上にある場合と、ネットワークで接続された別のコンピュータ上にある場合がある。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 RMICORBAMSMQ英語版, MailSlot英語版QNX、その他
Binder Android

実装例[編集]

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

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

脚注[編集]

  1. ^ Jochen Liedtke. On µ-Kernel Construction, Proc. 15th ACM Symposium on Operating System Principles (SOSP), December 1995
  2. ^ Inter Process Communication (IPC)”. CMU. 2012年10月4日閲覧。
  3. ^ IPC Shared Memory Messaging

参考文献[編集]

関連項目[編集]

外部リンク[編集]