CXLIV. セマフォ・共有メモリおよび IPC 関数(semaphore)
導入
このモジュールは、System V IPC 関連の関数へのラッパーを提供します。 セマフォ・共有メモリおよびプロセス間通信(IPC)がその中に含まれます。
セマフォは、マシーン上のリソースへの排他的アクセス機能や、 同時にあるリソースを使用することができるプロセスの数を制限するために 使用することができます。
このモジュールは、System V 共有メモリを使用した共有メモリ関数も 提供します。共有メモリは、グローバル変数へのアクセス手段を提供するために 使用することが可能です。別の httpd デーモンおよび (Perl, C, ... のような)他のプログラムさえ、グローバルデータ交換を 提供するこのデータにアクセスすることが可能です。 共有メモリは、同時アクセスに関して安全ではないということを覚えておいて ください。 同期をとるには、セマフォを使用してください。
表 1. Unix OS による共有メモリの制限
| SHMMAX | 共有メモリの最大サイズ。通常は 131072 バイト |
| SHMMIN | 共有メモリの最小サイズ。通常は 1 バイト |
| SHMMNI | 共有メモリセグメントの最大数。通常は 100 |
| SHMSEG | プロセス毎の共有メモリの最大数。通常は 6 |
メッセージング関数は、他のプロセスと相互にメッセージを送受信する ために使用することができます。 これにより簡単で効率的なプロセス間のデータ交換が可能であり、 Unix ドメインソケットを用いる場合のような設定は不要です。
注意: この拡張モジュールは Windows 環境では利用できません。
要件
外部ライブラリを必要としません。
インストール手順
この関数はデフォルトでは有効になってはいません。System V セマフォの サポートを有効にするには、オプション
--enable-sysvsem
を指定して PHP を コンパイルする必要があります。System V 共有メモリのサポートを有効にするには、 オプション
--enable-sysvshm
を 指定して PHP をコンパイルする必要があります。System V メッセージを有効に するには、オプション
--enable-sysvmsg
を指定して PHP をコンパイル します。
- 目次
- ftok -- パス名とプロジェクト ID を、System V IPC キーに変換する
- msg_get_queue -- メッセージキューを作成またはそれにアタッチする
- msg_receive -- メッセージキューからメッセージを受信する
- msg_remove_queue -- メッセージキューを破棄する
- msg_send -- メッセージキューにメッセージを送信する
- msg_set_queue -- メッセージキューデータ構造体の情報を設定する
- msg_stat_queue -- メッセージキューデータ構造体の情報を返す
- sem_acquire -- セマフォを得る
- sem_get -- セマフォ ID を得る
- sem_release -- セマフォを解放する
- sem_remove -- セマフォを削除する
- shm_attach -- 共有メモリセグメントを作成またはオープンする
- shm_detach -- 共有メモリセグメントへの接続を閉じる
- shm_get_var -- 共有メモリから変数を返す
- shm_put_var -- 共有メモリの変数を挿入または更新する
- shm_remove_var -- 共有メモリから変数を削除する
- shm_remove -- Unix システムから共有メモリを削除する