|
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-систем
|
|