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

福間創

P-MODEL「Corrective Errors〜remix of 舟」(remix) DIW/SHUN(1995) P-MODEL「舟」 日本コロムビア(1995) 福間未紗「MORES」(programming)リスペクトレコーズ(1995) P-MODEL「ENDING ERROR」

Raspberry Pi

Pi Picoを稲沢テックで製造中。 Model A、Model Bはクレジットカードと同程度(Model A は長辺方向がクレジットカードの5分の4程度)の大きさ。Model Aの方が価格が安い。Model A、Model BにはUSBをはじめとして、様々な端子が取り付けられている。

宣言型プログラミング

宣言型プログラミング(英: Declarative programming)は、数理論理学的な性質を表わしている総称的なプログラミングパラダイムである。式の計算構造を、主に表示的意味論下のロジックで表現する構文にされることが多く、式枠外の副作用を伴なう制御フローや自由変数の多用などは排除されるよう

コンピュータ略語一覧

拡張可能なマーク付け言語 (Extensible Markup Language) XMS eXtended Memory Specification XP エクストリーム・プログラミング (Extreme Programming) XSL 拡張可能スタイルシート言語 (Extensible Stylesheet Language)

BEACON

また、ライブ「2K20▲03」のM∞カード映像特典と同名である。 記憶のBEACON - BEACON of Memory 平沢進 - Vocal, Guitar, Synthesizer, Programming 2021年9月7日、日本経済新聞にてディスクレビューが掲載された。 (ディスクレビュー)宗教的な雰囲気

OpenCL

(relaxed-consistency shared memory model) 同期ポイントおよびOpenCLアトミック操作でのホスト・デバイス間のメモリ一貫性を保証する共有仮想メモリ (shared virtual memory: SVM, OpenCL 2.0) IEEE

PDP-10

後に2060プロセッサの Model B 版では仮想アドレス空間の256Kワードという制限を取り払い、最大32個の256Kワードまでの「セクション」を構成可能にして命令セットもそれに応じて変更した。従って同じKL10でも、従来の Model A と Model B は全く別のCPUとみなすことができる。Model B

仮想記憶

仮想記憶(かそうきおく、英語: virtual memory、バーチャルメモリ)とは、コンピュータ分野におけるメモリ管理の仮想化技法の一種であり、オペレーティングシステム (OS) などが物理的なメモリを、アプリケーション・ソフトウェア(プロセスなど)に対して、専用の連続した主記憶装置に見えるように提供する。