Семафоры, разделяемая память и IPC
Семафоры
&reftitle.intro;
Модули обеспечивают поддержку семейства функций межпроцессного взаимодействия
System V. Сюда входят семафоры, разделяемая память и обмен сообщениями между
процессами (IPC).
Семафоры могут использоваться для получения эксклюзивного доступа к ресурсам локальной
машины или для ограничения числа процессов, одновременно использующих ресурс.
Также этот модуль поддерживает функции для работы с разделяемой памятью System V.
Разделяемая память может быть использована для предоставления доступа к глобальным
переменным. Различные httpd-демоны и даже другие программы (написанные на Perl, C и т.д.)
могут получать доступ к этим данным для осуществления глобального обмена данными.
Помните, что разделяемая память НЕ ЗАЩИЩЕНА от одновременного доступа.
Используйте семафоры для синхронизации.
Лимиты, наложенные на разделяемую память в Unix OS
SHMMAX
максимальный размер разделяемой памяти, обычно 131072 байт
SHMMIN
минимальный размер разделяемой памяти, обычно 1 байт
SHMMNI
максимальное количество сегментов разделяемой памяти в системе, обычно 100
SHMSEG
максимальное количество сегментов разделяемой памяти на процесс, обычно 6
Функции обмена сообщениями можно использовать для отправки и получения сообщений в/из
другой процесс. Они обеспечивают простое и эффективное средство обмена данными между
процессами без необходимости создания UNIX-сокетов.
В Windows доступны только функции разделяемой памяти и ftok.
На этой платформе не поддерживаются ни семафоры, ни функции обмена сообщениями между процессами.
&reference.sem.setup;
&reference.sem.constants;
&reference.sem.reference;
&reference.sem.sysvmessagequeue;
&reference.sem.sysvsemaphore;
&reference.sem.sysvsharedmemory;