XCIセマフォおよび共有メモリ関数(semaphore)

導入

このモジュールは、System V IPC関連の関数へのラッパーを提供します。

セマフォは、マシーン上のリソースへの排他的アクセス機能や、 同時にあるリソースを使用することができるプロセスの数を制限するために 使用することができます。

このモジュールは、システム V 共有メモリを使用して共有メモリ関数も 提供します。共有メモリは、グローバル変数へのアクセス手段を提供するために 使用することが可能です。別の httpd デーモンおよび (Perl, C, ... のような)他のプログラムさえ、グローバルデータ交換を 提供するこのデータにアクセスすることが可能です。 共有メモリは、同時アクセスに関して安全ではないということを覚えておいて 下さい。 同期をとるには、セマフォを使用して下さい。

表 1Unix 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をコンパイル します。

実行用の設定

これらの関数の動作は、php.iniの設定により変化します。

表 2セマフォ設定オプション

名前デフォルト変更の可否
sysvmsg.value"42"PHP_INI_ALL
sysvmsg.string"foobar"PHP_INI_ALL
PHP_INI_* 定数の詳細と定義については、 ini_set()を参照して下さい。

リソース型

定義済みの定数

この拡張モジュールは定数を全く定義しませ ん。

目次
ftok --  パス名とプロジェクトIDをSystem V IPCキーに変換する
msg_get_queue --  Create or attach to a message queue
msg_receive --  Receive a message from a message queue
msg_remove_queue --  Destroy a message queue
msg_send --  Send a message to a message queue
msg_set_queue --  Set information in the message queue data structure
msg_stat_queue --  Returns information from the message queue data structure
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 システムから共有メモリを削除する