Синхронизация и взаимодействие программных потоков в операционной среде реального времени. Дорогов А.Ю. - 53 стр.

UptoLike

Составители: 

53
Аргумент rcvd в вызове MsgDeliverEvent() определяет доставочный ад-
рес для пересылки уведомления. Сервер хранит значение этого идентифи-
катора после вызова функции MsgReceive().
3.8. Асинхронный обмен сообщениями
Механизм асинхронного обмена определен как экспериментальный в
версии 6.3.0. QNX Neutrino и не входит в стандарт POSIX. Асинхронные со-
общения являются коммуникационной моделью, которая основана на спо-
собе передачи данных с промежуточным хранением. В отличие от меха-
низма синхронных сообщений этот способ обеспечивает доставку сообще-
ний, даже если получатель временно отсутствует, занят или недоступен.
При асинхронном обмене посылающий поток не нуждается в ответе от по-
тока получателя. Это обеспечивает большую гибкость и расширяемость,
так как передающие и принимающие потоки теперь не связаны в пары и не
требуют жесткой взаимной синхронизации.
В системах реального времени нередко встречаются ситуации, когда
клиент не желает ждать в блокирующем состоянии, пока сервер закончит
обслуживать его требование. Вместо этого он может улучшить свою эф-
фективность, выполняя в это время некоторые задачи. Множество асин-
хронных сообщений может быть также послано клиентом в пределах этого
периода. Буферизация асинхронных сообщений и пересылка их в виде па-
кетов позволяют снизить частоту обращения к ядру и улучшить тем самым
системную эффективность.
Механизм передачи асинхронных сообщений обеспечивает событий-
ную системную модель, которая хорошо дополняет традиционный синхрон-
ный механизм передачи сообщений. Ее главным свойством является высо-
кая производительность и отсутствие блокировок при передаче сообщений.
Эта системная модель позволяет разработать системы, в которых QNX
Neutrino сможет своевременно реагировать на внешние и внутренние
асинхронно генерируемые события, а также обеспечивает удобный и эф-
Асинхронное
соединение
Асинхронный
канал
Асинхронное сообщение
Producer Consumer
Рис. 3.7