TL

プロセス間通信(IPC)

独立したプロセスは互いのメモリを直接覗けません。データや合図をやり取りする仕組みがプロセス間通信(IPC)で、パイプ・共有メモリ・ソケットなど複数の手段があります。

中級IPCプロセス間通信ソケットOS最終更新: 2026-06-06
TL;DR要点だけ先に
  • 1.プロセスはメモリ空間が分離されているため、やり取りには専用の仕組み(IPC)が必要です。
  • 2.代表的な手段はパイプ・共有メモリ・メッセージキュー・ソケットで、速度と用途が異なります。
  • 3.最速は共有メモリ(ただし排他制御が必須)、最も汎用なのはネットワーク越しにも使えるソケットです。

なぜ専用の仕組みが要るのか

各プロセスには 独立した仮想アドレス空間 が与えられ、互いのメモリを直接読み書きできません。これはバグや不正アクセスから守るための プロセス分離 の働きです。

しかし現実のシステムは、複数のプロセスが協調して動きます。ブラウザの本体とレンダリング用の子プロセス、Web サーバとデータベースなど、別プロセス同士でデータや合図を渡す 必要が出てきます。

そこで OS は、分離を保ったまま安全に通信させる窓口として IPC(Inter-Process Communication) の仕組みを提供します。

主な手段の比較

代表的な IPC を、特徴で並べると次のようになります。

手段仕組み速度主な用途
パイプ一方向のバイトストリーム速い親子・コマンド連結
名前付きパイプ名前で開く双方向パイプ速い無関係なプロセス同士
共有メモリ同じ物理メモリを複数で共有最速大量データの受け渡し
メッセージキューメッセージ単位で送受信構造化された非同期通信
ソケットエンドポイント間の通信路ネットワーク越し・汎用
シグナル番号だけの非同期通知「止まれ」等の合図のみ

選び方の軸は 同じマシン内か / ネットワーク越しかデータ量やり取りがバイト列か構造化メッセージか の3点です。

パイプとソケット:流れるデータ

パイプ は、片方が書いた内容をもう片方が読む 一方向のバイトの流れ です。シェルの ls | grep txt は、ls の出力を grep の入力にパイプでつないでいます。親子プロセス間で手軽に使えるのが利点です。無関係なプロセス同士をつなぐには、ファイルのように名前を持つ 名前付きパイプ(FIFO) を使います。

ソケット は、より汎用的な通信路です。同一マシン内で完結する UNIX ドメインソケット と、TCP/IP でネットワーク越しに通信する ネットワークソケット があり、後者は 別マシンのプロセスとも通信できる のが決定的な強みです。Web の通信もこの上に成り立っています。

共有メモリとメッセージキュー

共有メモリ は、複数のプロセスが 同じ物理メモリ領域を自分の空間にマッピング し、そこを直接読み書きします。一度貼り付ければコピーが要らないため 最も高速 で、大量のデータ受け渡しに向きます。

ただし複数が同時に書くと壊れるため、排他制御(ロックやセマフォ)が必須 です。これを怠ると競合状態を招きます。

メッセージキュー は、送り手が メッセージ単位 で投函し、受け手が取り出す方式です。送受信のタイミングがずれてもキューが溜めてくれる 非同期 なやり取りに向き、データの区切りが明確なのも扱いやすい点です。

共有メモリは「速いが危険」

共有メモリは速度面で他を圧倒しますが、通信路自体には順序や排他の保証がありません。必ずセマフォやミューテックスと組み合わせ、誰がいつ書くかを設計してから使いましょう。

シグナルは「通信」というより「合図」

シグナルは番号1つを送れるだけで、任意のデータは運べません。「終了して」「設定を読み直して」といった一方向の通知に限られます。データのやり取りには別の IPC を使います。

まとめ

  • プロセスはメモリが分離されているため、やり取りには IPC が必要。
  • パイプ/ソケット はデータを流す通信路、共有メモリ は最速だが排他制御が必須、メッセージキュー は非同期向き。
  • ネットワーク越しなら ソケット、同一マシンで大量データなら 共有メモリ が定石。

プロセスそのものの基礎は プロセスとスレッド、競合を防ぐ手段は 排他制御とデッドロック、合図の詳細は シグナル も合わせてどうぞ。

OS Article

プロセス間通信(IPC)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

IPC

比較で見る軸

難易度: intermediate / カテゴリ: OS / タグ数: 4

導入後に効く点

代表的な手段はパイプ・共有メモリ・メッセージキュー・ソケットで、速度と用途が異なります。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
intermediate
カテゴリ
OS
タグ数
4

判断チェックリスト

  • 自社の用途が「IPC / プロセス間通信」に近いか確認する。
  • 強みである「プロセスはメモリ空間が分離されているため、やり取りには専用の仕組み(IPC)が必要です。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

IPCプロセス間通信ソケットOSIPCプロセス間通信ソケットOS
参考: 公式情報