Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Именованные программные каналы




Неименованные программные каналы

Программные каналы

POSIX-механизмы взаимодействия между процессами

 

Процессы операционной системы QNX Neutrino, в каких бы

"родственных" отношениях они ни находились, выполняются каждый в своем изолированном адресном пространстве и не могут обмениваться информацией без использования механизмов межпроцессного взаимодействия (IPC, InterProcess Communication). В QNX Neutrino реализован ряд таких механизмов, как стандартных, так и уникальных. В этой главе мы рассмотрим некоторые из стандартных механизмов IPC:

.. именованные и неименованные программные каналы;

.. разделяемая память;

..очереди сообщений POSIX.

Кроме того, мы поговорим об именованных и неименованных семафорах.

 

 

Программные каналы достаточно широко используются для обмена данными между процессами. В нашем распоряжении два типа программных каналов — неименованные и именованные. Каждый из этих типов обладает особенностями, которые следует принимать во внимание при организации межпроцессного взаимодействия.

 

 

Неименованный программный канал — это механизм, который командный интерпретатор использует для создания конвейеров. Этот механизм реализован в администраторе ресурсов pipe и обеспечивает передачу данных через промежуточный буфер в оперативной памяти (в адресном пространстве

администратора pipe). Неименованный канал создается функцией pipe(), которой в качестве аргумента передается массив из двух целых чисел. В этот массив записывается два файловых дескриптора, один из которых в последующем используется для записи информации, другой — для чтения.

К достоинствам неименованных программных каналов можно отнести то, что они являются стандартным POSIX-механизмом IPC, а также то, что это — достаточно быстрый механизм. К недостаткам — то, что обмен данными возможен только между процессами-"родственниками", т. к. процесс может получить файловые дескрипторы для работы с неименованным каналом, только наследуя их от родительского процесса.

 

 

Именованные каналы — это POSIX-механизм, поддержка которого реализована в файловой системе Neutrino. В основе механизма лежит особый тип файла — FIFO, выполняющего функцию буфера для данных. Файл типа FIFO можно создать двумя способами:

.. из командной строки — утилитой mkfifo;

.. из программы — функцией mkfifo().

Поскольку FIFO — это файл, имеющий имя, то, во-первых, работа с ним выполняется практически так же, как с обычным файлом (open(), read(),write(), close() и т. п.), во-вторых, именованный канал медленнее неименованного, но данные, записанные в именованный канал, сохраняются в случае сбоя (например, отключения питания).

 




Поделиться с друзьями:


Дата добавления: 2014-12-10; Просмотров: 753; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.