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