Разработчик (и) | iCanProgram Inc. |
---|---|
Стабильная версия | 2012Jan26 Выпущена SIMPL v3.3.7 / 26 января 2012 г.; 8 лет назад (26.01.2012) |
Операционная система | Linux |
Тип | Межпроцессное взаимодействие |
Лицензия | Стандартная общественная лицензия ограниченного применения GNU |
Веб-сайт | www.icanprogram.com / simple / |
Synchronous Interprocess Messaging Project для LINUX (SIMPL) - это бесплатный проект с открытым исходным кодом, который позволяет QNX -стиль синхронная передача сообщений путем добавления библиотеки Linux с использованием методов пользовательского пространства, таких как разделяемая память и конвейеры Unix для реализации SendMssg
/ ReceiveMssg
/ ReplyMssg
механизмы межпроцессного обмена сообщениями.
Клиентский поток, отправляющий сообщение, БЛОКИРУЕТСЯ (выполнение потока процесса временно приостанавливается) до тех пор, пока поток сервера не отправит подтверждение полученного сообщения, не обработает сообщение и не выполнит ответ. Когда серверный поток отвечает, клиентский поток становится ГОТОВЫМ (разблокирован). Серверный поток обычно зацикливается, ожидая получения сообщения от клиентского потока.
Блокировка синхронизирует выполнение клиентского потока, блокирует его и неявно планирует выполнение серверного потока, не требуя явного управления процессом со стороны ядра, чтобы определить, какой поток запускать следующим, как и в других формах IPC.
Операции отправки и получения являются блокирующими и синхронными, ответ не блокируется, клиентский поток уже заблокирован в ожидании ответа, и дополнительная синхронизация не требуется. Серверный поток отвечает клиенту и продолжает работать, в то время как ядро и / или сетевой код асинхронно передает данные ответа клиентскому потоку и помечает его как ГОТОВО для выполнения.
Синхронизированная передача сообщений имеет следующие преимущества:
Есть еще один проект синхронной передачи сообщений, вдохновленный QNX, доступный для Linux. SRR IPC (для отправки / получения / ответа) Сэма Робертса и Эндрю Томаса из Cogent Real-Time Systems, Inc., который связан с проектом SIMPL и добавляет QNX-совместимый API слой. SRR - это загружаемый модуль ядра, предназначенный для совместимости с QNX API для облегчения портирования кода.
Этот модуль имеет некоторые отношения с проектом SIMPL, и я подписался на список рассылки simple. Программное обеспечение FC использует разделяемую память и каналы Unix для реализации передачи сообщений S / R / R.