LINUX.ORG.RU

Посоветуйте метод IPC


0

0

Несколько процессов. Нужен метод взаимодействия, обеспечивающий следующее:
1. Передача буфферов размером максимум 200 байт.
2. Буффер должен быть передан как единое целое без разрывов
3. Данные переданные одним процессом должны быть прочитанны всеми остальными как можно быстрее.
4. Любой процесс перед отправкой своих данных должен иметь возможность проверить прочитаны-ли всеми остальными процессами текущие данные.

В принципе устроит следующий алгоритм работы: процесс проверяет свободен-ли буффер, если свободен, то блокирует его и пишет туда данные, дожидается пока их прочитают все кому нужно, разблокирует.

Какой метод IPC под это лучше всего подходит?

★★★★

Re: Посоветуйте метод IPC

Погугли со словом паттерн. Еще что-то похожее я видел в теории распределенных баз данных - именно методы для реализации подобного.

VladimirMalyk ★★★★★ ()

Re: Посоветуйте метод IPC

Нихрена не понял, но блокировка и разблокировка 200-байтовых буферов будет стоить дороже, чем их тупое копирование всем заинтересованным процессам.

tailgunner ★★★★★ ()

Re: Посоветуйте метод IPC

А количество процессов известно? Может их проще зарегистрировать и посылать буферы сообщениями?

RaySlava ()

Re: Посоветуйте метод IPC

MPI_Bcast что ли :)

А если серьёзно, лучше чтобы отправитель знал всех получателей и тогда можно раскидывать им через сокеты.

const86 ★★★★★ ()

Re: Посоветуйте метод IPC

Нужна шина с подтверждением доставки.

В принципе, клиенты могут и сами слать подтверждение...

true_admin ★★★★★ ()

Re: Посоветуйте метод IPC

Если всё очень быстро нужно, то изобретай на комбинации shmem и futex.

mv ★★★★★ ()
Ответ на: Re: Посоветуйте метод IPC от VladimirMalyk

Re: Посоветуйте метод IPC

> Погугли со словом паттерн. Еще что-то похожее я видел в теории распределенных баз данных - именно методы для реализации подобного.

Человек спрашивает про механизм взаимодействия процессов, а не о паттернах.

И вообще, шаблоны проектирования должны появляться натурально, их почти никогда не нужно применять. Они сами появляются, на то они и шаблоны. Если в проекте вырисовывается шаблон - это значит, скорее всего, вы на верном пути. О шаблонах нужно просто знать, чтоб их распознать или чтобы быстро объяснить другим архитектуру какой-то части.

smh ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.