LINUX.ORG.RU

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


0

0

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

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

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

★★★★

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

VladimirMalyk ★★★★★
()

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

tailgunner ★★★★★
()

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

RaySlava
()

MPI_Bcast что ли :)

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

const86 ★★★★★
()

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

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

true_admin ★★★★★
()

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

mv ★★★★★
()
Ответ на: комментарий от VladimirMalyk

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

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

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

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