![](../imag/spacer.gif) |
XC. Функции Semaphore, Shared Memory и IPC
Этот модуль предоставляет оболочки для семейства функций System V IPC.
Он включает семафоры, shared-память и внутрипроцессные сообщения /inter-process messaging (IPC).
Семафоры могут использоваться для предоставления эксклюзивного доступа к
ресурсам на текущей машине или для ограничения количества процессов, которые могут одновременно использовать ресурс.
Этот модуль также предоставляет функции для работы с shared-памятью с
использованием совместно используемой памяти System V. Shared-память может
использоваться для предоставления доступа к глобальным переменным. Различные httpd-демоны и даже другие программы
(такие как Perl, C, ...) могут получать доступ к этим данным, что даёт
глобальный обмен данными. Помните, что shared-память НЕ защищена от
одновременного доступа. Используйте семафоры для синхронизации.
Таблица 1. Ограничения Shared-памяти в ОС UnixSHMMAX |
максимальный размер 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-систем
| ![](../imag/spacer.gif) |