Индустрия программирования

Механизмы межпроцессных взаимодействий в операционной системе 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
  • защита доступа основывается на тех же принципах, что и защита
    доступа к файлам





Содержание раздела