コンテンツにスキップ

「プロセス間通信」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Cewbot (会話 | 投稿記録)
Cewbot (会話 | 投稿記録)
59行目: 59行目:


以下は、プラットフォーム固有またはプログラミング言語固有のAPIの例である。
以下は、プラットフォーム固有またはプログラミング言語固有のAPIの例である。
* [[アップル (企業)|アップル]]の [[Apple event]](従来は Interapplication Communications、IAC と呼ばれていた)
* [[Apple]]の [[Apple event]](従来は Interapplication Communications、IAC と呼ばれていた)
* [[:en:ENEA AB|Enea]]の [[:en:LINX (IPC)|LINX]] - Linux向け(オープンソース)と [[Enea OSE]] で動作するバージョンがある。
* [[:en:ENEA AB|Enea]]の [[:en:LINX (IPC)|LINX]] - Linux向け(オープンソース)と [[Enea OSE]] で動作するバージョンがある。
* [[カーネギーメロン大学|CMU]]によるIPC実装<ref>{{Cite web|url= http://www.cs.cmu.edu/~ipc/ |title=Inter Process Communication (IPC) |publisher=[[カーネギーメロン大学|CMU]] |accessdate=2012-10-04}}</ref>
* [[カーネギーメロン大学|CMU]]によるIPC実装<ref>{{Cite web|url= http://www.cs.cmu.edu/~ipc/ |title=Inter Process Communication (IPC) |publisher=[[カーネギーメロン大学|CMU]] |accessdate=2012-10-04}}</ref>

2021年5月20日 (木) 10:47時点における版

プロセス間通信(プロセスかんつうしん、IPC、: interprocess communication)はコンピュータの動作において、複数プロセス(の複数スレッド)間でデータをやりとりする仕組み。通信プロセスは、同一コンピュータ内で帰結するローカル、ネットワーク接続された別のコンピュータと相互にリモート、などのほかに多様な観点で分類され、スレッド間の通信帯域幅とレイテンシや扱うデータの種類も多種多様である。メッセージパッシング同期共有メモリRPCなどのメカニズムやプリミティブがある。

プロセス間通信の目的と理由は

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

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

主なIPC技法

技法 提供しているオペレーティングシステムや環境
ファイル 多くの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

参考文献

関連項目

外部リンク