Forum und email
Semaphore, Shared Memory and IPC Functions

CXLV. Semaphore, Shared Memory and IPC Functions

Úvod

Toto rozšíření poskytuje rozhraní k rodině IPC funkcí Systemu V. To zahrnuje semafory, sdílenou paměť a meziprocesové zprávy (IPC).

Semafory se dají používat k poskytování exkluzivního přístupu k prostředkům na daném systému, nebo k omezení počtu procesů, které mohou současně používat určitý prostředek.

Toto rozšíření také poskytuje funkce pro práci se sdílenou pamětí využívající System V sdílenou paměť. Sdílená pmět se dá používat k poskytování přístupu ke globálním proměnným. Různí httpd-daemoni a dokonce i jiné programy (např. Perl, C, ...) mohou k těmto datům přistupovat, a vytvořit tak globální výměnu dat. Pamatujte, že sdílená paměť není chráněna proti simultáním přístupům. K synchronizaci použijte semafory.

Tabulka 1. Omezení sdílené paměti systémem Unix

SHMMAXmax. velikost sdílené paměti, normálně 131072 bytů
SHMMINmin. velikost sdílené paměti, normálne 1 byte
SHMMNImax. počet segmentů sdílené paměti, normálně 100
SHMSEGmax. počet segmentů sdílené paměti na proces, normálně 6

The messaging functions may be used to send and receive messages to/from other processes. They provide a simple and effective means of exchanging data between processes, without the need for setting up an alternative using unix domain sockets.

Poznámka: Toto rozšíření není k dispozici na platformách Windows.

Požadavky

Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.

Instalace

Podpora těchto funkcí není ve výchozím nastavení zapnuta. Pro zapnutí podpory semaforů Systemu V zkompilujte PHP s volbou --enable-sysvsem. Pro zapnutí podpory sdílené paměti Systemu V zkompilujte PHP s volbou --enable-sysvshm. Pro zapnutí podpory zpráv Systemu V zkompilujte PHP s volbou --enable-sysvmsg.

Konfigurace běhu

Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.

Tabulka 2. Konfiguraèní volby pro Semaphore

NázevVýchozí hodnotaLze zmìnit
sysvmsg.value"42"PHP_INI_ALL
sysvmsg.string"foobar"PHP_INI_ALL
Pro bli¾¹í podrobnosti a definici PHP_INI_* konstant viz ini_set().

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Obsah
ftok --  Convert a pathname and a project identifier to a System V IPC key
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 -- Získat semafor
sem_get -- Získat id semaforu
sem_release -- Uvolnit semafor
sem_remove -- Remove a semaphore
shm_attach -- Vytvořit nebo otevřít segment sdílené paměti
shm_detach -- Odpojit se od segmentu sdílené paměti
shm_get_var -- Vrátit proměnnou ze sdílené paměti
shm_put_var -- Vložit nebo modifikovat proměnnou do sdílené paměti
shm_remove_var -- Odstranit proměnnou ze sdílené paměti
shm_remove -- Odstranit sdílenou paměť ze systému