今回は、GNU/Linuxカーネルの機能の1つであるプロセス間通信(IPC:Inter Process Communication)について解説する。Linuxでは、各プロセスがそれぞれ固有の論理アドレス空間を持ち、互いに影響がないよう動作する。しかし、これだけでは複数のプロセスが連携して動作できない。そこでIPCが必要になる。 IPCには、一般にパイプ、FIFO(First-In First-Out)、メッセージ・キュー、ソケットなどいくつかの手法がある。以下ではUNIX(System V)で定義されたIPCについて解説する。System Vでは、IPCに向けた手法(資源)として、セマフォ(Semaphore)とメッセージ・キュー、共有メモリー・リージョンの3種類が用意されている。各資源にはIPCキーとIPC識別子が用意されており、排他制御などを実行できる。各資源の使い過ぎを防ぐ仕組み(