プロセス間通信(プロセスかんつうしん、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

Opera

ブランドロゴを刷新した。 第2世代のOpera Turboを搭載した。 Web Audio APIを独自コーデックで対応した。 ハンドラを管理できるようになった。 12月8日 Opera 34 リリース Chromium 45エンジン採用によりJavaのサポートを停止 2月2日 Opera 35 リリース タブごとに音声再生をミュートできるようになった

ブラウザ戦争

現することとなり、NN離れを加速する一因となった。 また、JavaScriptについてもアクセスAPIとしてNNが採用したレイヤーは非常に使い勝手が悪く、IEのアクセスAPIであるDOMと比較して完全に劣っていた。この2種類のアクセスAPIはまったく互換性がなかったため、コストの問題からどちらかし

Pascal

JavaなどはC言語の構文の小改良にとどまっているが、LimboやGo言語などC言語を使い尽した設計者らによる新言語が、Pascalに似た記法としていることは特筆事項であろう。なお、ALGOL系ではAdaも変数などの型の記述を、これに類似した構文としている。ScalaやKotlinといったJava

Flickr

Email Perl for "controlling" ImageMagick for image processing MySQL 4.0 Java for the node service Apache Web Server 2 FlickrのYahoo

HTTP cookie

`Secure` フラグを追加することで安全に設定できる。 HttpOnlyクッキーは、JavaScriptなどのクライアント側APIからはアクセスできない。この制限により、クロスサイトスクリプティング(XSS)によるクッキー盗難の脅威が排除される。ただし、ク

中間表現

IRがその代表例として広く知られる。 中間表現はテキストデータやバイナリデータなどのデータ構造をとる。すなわち任意のデータ構造をとる。Javaバイトコードなどの「バイトコード」はフィールドの区切りや構造の長さなどがバイト指向な中間表現を指す語である。内部的な場合にはアドレスを指すポインタ

Internet Explorer for Mac

“2002年4月17日のニュース”. Mainichi Communications (2002年4月17日). 2010年11月17日閲覧。 ^ a b “アップデート情報”. Impress Watch (2002年7月). 2010年11月15日閲覧。 ^ “Java News [ 2003.7 ]”. 2010年11月17日閲覧。

Windows Phone

からのOEMによる移行が大幅に簡単になっている。 Windows Phone 8よりさらにWindowsとの統合が進み、WindowsランタイムのAPIの多くがサポートされるようになっている。 Windows Phone 8.1のサポートは、2017年7月11日までとされている。 Windows Phoneの後継となるOS。