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 システムから共有メモリを削除する