Учебник PHP

         

XC. Функции Semaphore, Shared Memory и IPC

Этот модуль предоставляет оболочки для семейства функций System V IPC. Он включает семафоры, shared-память и внутрипроцессные сообщения/inter-process messaging (IPC).

Семафоры могут использоваться для предоставления эксклюзивного доступа к ресурсам на текущей машине или для ограничения количества процессов, которые могут одновременно использовать ресурс.

Этот модуль также предоставляет функции для работы с shared-памятью с использованием совместно используемой памяти System V. Shared-память может использоваться для предоставления доступа к глобальным переменным. Различные httpd-демоны и даже другие программы (такие как Perl, C, ...) могут получать доступ к этим данным, что даёт глобальный обмен данными. Помните, что shared-память НЕ защищена от одновременного доступа. Используйте семафоры для синхронизации.

Таблица 1. Ограничения Shared-памяти в ОС Unix
SHMMAX максимальный размер shared-памяти, нормально 131072 байт
SHMMIN минимальный размер shared-памяти, нормально 1 байт
SHMMNI максимальное количество сегментов shared-памяти в системе, нормально 100
SHMSEGмаксимальное количество сегментов shared-памяти на процесс, нормально 6

Функции сообщений могут использоваться для отправки и получения сообщений в/из других процессов. Они являются простым и эффективным средством обмена


данными между процессами без необходимости без необходимости настройки альтернативного использования сокетов домена unix.

Примечание: эти функции не работаю на системах Windows.

Содержание
ftok - конвертирует pathname и идентификатор проекта в ключ 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 - создаёт или открывает сегмент shared-памяти
shm_detach - отсоединяет от сегмента shared-паямти
shm_get_var - возвращает переменную из shared-памяти
shm_put_var - вставляет или обновляет переменную в shared-памяти
shm_remove_var - удаляет переменную из shared-памяти
shm_remove - удаляет shared-память из Unix-систем
Содержание раздела