Страниц: [1]
  Печать  
Автор Тема: Нужно мнение....  (Прочитано 6153 раз)
Hed
Full Member
***
Offline Offline

Сообщений: 106



Просмотр профиля
« : Июля 31, 2007, 10:10:15 pm »

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

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

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

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

P.S. QNX 4.25
Записан
ZZZ
Участник
*
Offline Offline

Сообщений: 12


Просмотр профиля
« Ответ #1 : Августа 07, 2007, 12:18:37 pm »

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

С уважением, ZZZ
Записан

С уважением, ZZZ
Hed
Full Member
***
Offline Offline

Сообщений: 106



Просмотр профиля
« Ответ #2 : Августа 10, 2007, 07:13:03 pm »

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

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

Сообщений: 12


Просмотр профиля
« Ответ #3 : Августа 14, 2007, 05:19:30 pm »

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

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

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

С уважением, ZZZ
AlexDon
Участник
*
Offline Offline

Сообщений: 0


Просмотр профиля
« Ответ #4 : Августа 15, 2007, 01:55:05 pm »

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