共有メモリー
読み:きょうゆうメモリー
外語:shared memory
IPCで用意されるプロセス間通信用機能の一つで、システム上に固有のメモリー空間を用意し、それを複数のプロセスで共有するもの。
概要
オペレーティングシステム(OS)に対して共有メモリーの獲得要求を行なうと共有メモリーIDが取得され、それを各プロセスで指定してメモリーのアタッチ(マッピング)を行なうことで自己のデータセグメントと同様にアクセスできる。
プロセス間通信としては最も高速かつシンプルという特徴を持つが、同一のメモリーを複数のプロセスで更新できるため、タイミングを制御しないと互いの内容を破壊する可能性がある他、相手がデータを更新したことを即座に通知する手段は用意されていない(シグナルなどを用いて別に制御する必要がある)、共有可能なメモリーのサイズに制限がある、などの欠点もある。
特徴
更新の衝突を防ぐため、書き込みをする場合は、何らかの排他制御が必要である。
通常は、セマフォやミューテックスを利用したり、あるいは更新を行なうプロセスを一つだけに限定して他のプロセスは参照のみとするなどのシステム設計を行なう(これをwrite once/read many方式と呼ぶ)。
再検索