Механизмы межпроцессных взаимодействий в операционной системе Unix
, учебные материалы конференции ,
Традиционный подход ОС UNIX
- реакция на сложности Multics
Возникшие проблемы
Избыточный набор системных средств, предназначенных для обеспечения
возможности взаимодействия и синхронизации процессов, которые
не обязательно связаны отношением родства
- IPC - Inter-Process Communication Facilities
- с появлением UNIX System V Release 4.0 все эти средства были
узаконены и вошли в фактический стандарт ОС UNIX современного
образца
- в разных вариантах системы средства IPC реализуются по-разному
- эффективность реализации различается
- усложняется разработка мобильных асинхронных программных комплексов
Пакет средств IPC
- UNIX System V Release 3.0
- средства, обеспечивающие возможность наличия общей памяти
между процессами (сегменты разделяемой памяти - shared memory
segments)
- средства, обеспечивающие возможность синхронизации процессов
при доступе с совместно используемым ресурсам, например, к разделяемой
памяти (семафоры - semaphores)
- средства, обеспечивающие возможность посылки процессом сообщений
другому произвольному процессу (очереди сообщений - message
queues)
Общие свойства всех трех механизмов:
- для каждого механизма поддерживается общесистемная
таблица, элементы которой описывают всех существующих в данный
момент представителей механизма (конкретные сегменты, семафоры
или очереди сообщений)
- элемент таблицы содержит некоторый числовой ключ, который
является выбранным пользователем именем представителя соответствующего
механизма
- процесс, желающий начать пользоваться одним из механизмов,
обращается к системе с системным вызовом из семейства "get",
ответным параметром является числовой дескриптор
- ключ IPC_PRIVATE
- ключ IPC_CREAT
- защита доступа основывается на тех же принципах, что и защита
доступа к файлам