LINUX.ORG.RU

Вопрос по использованию семафоров System V


0

0

Возникла необходимость реализовать следующую схему:

Программа передатчик -> разделяемая память -> программа приёмник.

Само собой синхронизация реализована на семафорах.
Программа приёмник должна работать следующим образом:
1) ~3 секунды висит на семафоре (semop)
2) делает некоторые опрерации, если от программы передатчика нет данных
2') если данные пришли, выполнить другие операции
3) вернуться к пункту 1)

Вопрос:
Как поставить "таймаут" для semop?


забить на sysv ибо не unixway

cvv ★★★★★
()

ИМХО луче через сокеты это.

bugmaker ★★★★☆
()

Геморное какое-то решение. man socket man select

Reset ★★★★★
()

Ну вопрос о unixway и геморности к сожалению не ставится. Ибо я был поставлен перед фактом, как я должен с передатчиком общаться )))

Вроде нашёл некий semtimedop, буду с ним пробовать развлекаться.

P. S. К разрабатываемой системе предъявляются требования real-time.
А сокеты не "медленнее" разделяемой памяти? (это не утверждение :) )

ksicom
() автор топика
Ответ на: комментарий от ksicom

в руках таких как ты unix-сокеты на порядок быстрее шаренной памяти.

по крайней мере пока речь не идёт о сотнях метров за транзакцию

cvv ★★★★★
()

Можно использоватать сигналы, с помощью alarm() или setitimer().

>P. S. К разрабатываемой системе предъявляются требования real-time.

Linux не Real-time ОС... (это утверждение :) )

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

Я не пытаюсь начать holy-war о том, что такое настоящая RT операционная система, когда начнется рассуждение о мягкой и жесткой риалтаймовости и т.д. Просто два предложения:

>P. S. К разрабатываемой системе предъявляются требования real-time. А сокеты не "медленнее" разделяемой памяти?

создали у меня ощущение, что автор путает понятия "real-time" и "максимальная производительность".

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