プロセス間通信(プロセスかんつうしん、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の例を挙げる。

  • 無名パイプ英語版名前付きパイプ
  • Common Object Request Broker Architecture (CORBA)
  • Freedesktop.orgD-Bus
  • Distributed Computing Environment (DCE)
  • メッセージバス (Mbus) - RFC 3259 にて規定
  • MCAPI (Multicore Communications API)
  • Lightweight Communications and Marshalling (LCM)
  • ONC RPC
  • UNIXドメインソケット
  • XML: XML-RPCSOAP
  • JSON: JSON-RPC
  • Thrift
  • TIPC (TIPC
  • ZeroCInternet Communications Engine (ICE)

以下は、プラットフォーム固有またはプログラミング言語固有の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

参考文献

編集

関連項目

編集

外部リンク

編集


📚 Artikel Terkait di Wikipedia

Java Platform, Micro Edition

Edition (J2ME) という名称だった。Java 8にて開発終了した。最後にリリースされたSDKは2018年1月のJava ME SDK 8.3.1。 様々なデバイスに対応するため、コンフィギュレーションとプロファイルと呼ばれるものでAPIを定義している。コンフィギュレーションには次の2つがある。

Java Community Process

API仕様を確かめるための技術互換キットを提供する。 JCP自身はJSRによって記述されている。最新バージョンはJSR 355に記述された2.9である。 300以上のJSRsがある。 ^ 英: Java specification requests Javaコミュニティ・プロセス

基本クラスライブラリ

XMLウェブサービスを作成することを可能にする。ほとんどもしくはすべてのこれらのライブラリはASP.NETで使用される。 System.Windows.Forms この名前空間はWindows Formsアーキテクチャを含み、ネイティブのWindowsインターフェイス(Windows API

Internet Explorer 10

Floats Channel Messaging (HTML5 Web Messaging) Media Query Listeners script 要素の async 属性 HTML5 Forms HTML5 Drag and Drop HTML5 File Reader API HTML5 Sandbox

Mobile 3D Graphics API

Java Platform, Micro Edition > Mobile 3D Graphics API Mobile 3D Graphics API (M3G) は、3次元コンピュータグラフィックスを生成するJavaを記述するためのAPIを定義した仕様である。M3Gは携帯電話やPDAのような組

コンピュータ略語一覧

ACID Atomicity Consistenc Isolation Durability Ajax (Asynchronous JavaScript and XML) Alt Alternative AMD アドバンスト・マイクロ・デバイセズ (Advanced Micro Devices) AOSS

TCPやUDPにおけるポート番号の一覧

3920, Extensible Messaging and Presence Protocol (XMPP): Core”. Tools.ietf.org. 2014年5月27日閲覧。 ^ a b “RFC 6120, Extensible Messaging and Presence Protocol