QNX RTP Logo QNX Realtime Platform: Русский Портал QNX
Thursday, 20 Nov 2008 12:51
Меню

Проект OpenNET - все о Unix
Главная

 · Начало · Статистика · Поиск ·

  QNX.ORG.RU —› Языки и алгоритмы —› Нужно мнение....

Посл.ответ Сообщение


Дата: 31 Июл,  19:10

Вобщем вопрос такой....
Что оптимальней/рациональней использывать для межпроцессного обмена: классически send/receive или регестрировать устройство и аттачить префикс в /dev?

Я, конечно, понимаю что, случаи разные...в моем случае:
есть АРМ - состоящий из десятка взаимодействующих модулей, причем, некоторые из них находятся на другом узле.

А вобще, хочется услышать опытное мнение о том и другом
(или еще о каком...) способе взаимодействия, так сказать - о плюсах и минусах.

Заранее спасибо.

P.S. QNX 4.25


Дата: 7 Авг,  09:18

Send/Receive - это нативный механизм. name_attach - это надстройка. Send/Receive требует более иерархической архитектуры, поскольку в подобном случае наиболее простым решением является (ИМХО) некий "главный диспетчер", порождающий все остальные процессы и соответственно по мере порождения новых передавая им id "братьев". Понятно, что это требует запуска в определённой последовательности, и выглядит несколько громоздким. Но мне нравился такой подход, и я в своё время на четвёрке именно так организовывал свою систему. Уж больно удобен, на мой вкус, механизм Send/Receive/Reply-блокировок для "естественной" синхронизации, удобно и диагностировать аварийные ситуации. Для драйверов же, конечно, однозначно надо использовать аттачанье.

С уважением, ZZZ


Дата: 10 Авг,  16:13

Спасибо за ответ.

По поводу "иерархической архитектуры" абсолютно согласен, но к сожалению в данном проекте конкретная иерархия не продумана, что задрудняет отладку.
А сечйчас появились новые требования (особенно к скорости передачи данных), вот я и расматриваю альтернативные способы передачи. Пока лучше чем Send/Receive/Reply не нашел (если что-то еще и есть), и самое хреновое это, что нельзя использывать Ethernet.


Дата: 14 Авг,  14:19

Погодите-погодите...Если Вы говорите "Ethernet" - значит речь идёт о межпроцессном общении по сети? Как-то не врублюсь в противоставление IPC vs Ethernet. Это вовсе разные вещи. Или я чего-то не так понял.
Скорость передачи данных от процесса к драйверу io-net настолько превосходит скорость обмена по самой сети, что здесь бессмысленно озабачиваться скоростью IPC. Не Ethernet, говорите Вы? А что, com-порты? CANы?

С уважением, ZZZ

P.S. Как я понял, кстати (поскольку речь о name_attach), имеется в виду QNX4 ?


Дата: 15 Авг,  10:55

Я в свое время на QNX4 использовал неблокирующий обмен по сети при помощи RAW-пакетов. Каждый процесс посылал свои изменения другим - т.е. все процессы были равноправны.

You must login to post.

©   2000-2003 Команда проекта QNX.ORG.RU // QNX.ORG.RU Team
Авторы проекта: Дмитрий Алексеев [dmi] и Дмитрий Васильев. Техническое сопровождение проекта: Игорь Сорокин [isorokin]. Информационное сопровождение: Дмитрий Алексеев [dmi]
QNX - зарегистрированная торговая марка QNX Software Systems, Ltd., Canada. Остальные упоминаемые на сайте торговые марки и логотипы являются исключительно собственностью их уважаемых владельцев. Ничьи права не затронуты. Материалы сайта не могут быть скопированы и где-либо использованы в той или иной форме без письменного разрешения разработчиков сайта.
Powered by Mambo Open Source