простота
Разработчик(и) | iCanProgram Inc. |
---|---|
Стабильная версия | 26 января 2012 г. Выпущен SIMPL v3.3.7. [1] / 26 января 2012 г |
Операционная система | Линукс |
Тип | Межпроцессное взаимодействие |
Лицензия | Меньшая стандартная общественная лицензия GNU [2] |
Веб-сайт | www |
Проект синхронного межпроцессного обмена сообщениями для LINUX (SIMPL) — это бесплатный проект с открытым исходным кодом , который позволяет QNX в стиле синхронную передачу сообщений путем добавления библиотеки Linux с использованием пользовательского пространства методов , таких как общая память и каналы Unix. [3] реализовать SendMssg
/ ReceiveMssg
/ ReplyMssg
механизмы межпроцессного обмена сообщениями.
Механизм
[ редактировать ]Клиентский поток, отправляющий сообщение, БЛОКИРУЕТСЯ (выполнение потока процесса временно приостанавливается) до тех пор, пока поток сервера не отправит подтверждение получения сообщения, не обработает сообщение и не выполнит ответ. Когда серверный поток отвечает, клиентский поток становится ГОТОВ (разблокирован). Серверный поток обычно зацикливается, ожидая получения сообщения от клиентского потока.
Блокировка синхронизирует выполнение клиентского потока, блокирует его и неявно планирует выполнение серверного потока, не требуя явного управления процессом со стороны ядра для определения того, какой поток запускать следующим, как в случае с другими формами IPC.
Операции отправки и получения являются блокирующими и синхронными, ответ не блокируется, клиентский поток уже заблокирован в ожидании ответа, и дополнительная синхронизация не требуется. Серверный поток отвечает клиенту и продолжает работу, в то время как ядро и/или сетевой код асинхронно передает данные ответа клиентскому потоку и помечает его как ГОТОВНЫЙ к выполнению. [4]
Преимущества синхронизированной передачи сообщений
[ редактировать ]Синхронизированная передача сообщений имеет следующие преимущества:
- Простая модель кодирования упрощает задачу разделения сложной системы и помогает в тестировании.
- Встроенная синхронизация потоков координирует выполнение взаимодействующих программ.
- Буферизация данных не требуется
- Упрощение сетевых взаимодействий — потоки могут находиться в разных программах на разных машинах.
Ограничения
[ редактировать ]SIMPL не является потокобезопасным.
Похожие проекты
[ редактировать ]Существует еще один проект синхронной передачи сообщений, основанный на QNX, доступный для Linux. SRR IPC (для отправки/получения/ответа) Сэма Робертса и Эндрю Томаса из Cogent Real-Time Systems, Inc. , который связан с проектом SIMPL и добавляет QNX-совместимый уровень API. SRR — это загружаемый модуль ядра , совместимый с API QNX и облегчающий перенос кода.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «26 января 2012 г. выпущен SIMPL v3.3.7 — возможность компиляции Mac и Cygwin» . 26 января 2012 г. Проверено 16 марта 2012 г.
- ^ «Лицензия на дополнительные сведения о проекте SourceForge SIMPL-синхронный межпроцессный обмен сообщениями» . Проверено 16 марта 2012 г.
- ^ «SRR — передача сообщений, совместимая с QNX API, для Linux» . Проверено 4 февраля 2015 г.
Этот модуль имеет некоторое отношение к проекту SIMPL, и я подписываюсь на список рассылки simpl. Программное обеспечение FC использует общую память и каналы Unix для реализации передачи сообщений S/R/R.
- ^ QNX. «Межпроцессное взаимодействие (IPC)» . Проверено 16 марта 2012 г.
Внешние ссылки
[ редактировать ]- простота
- SourceForge, SIMPL-синхронный межпроцессный обмен сообщениями
- Amazon — программирование по принципу SIMPL
- Модуль SRR Модуль ядра Linux srripc, версия 1.4.43, 13 января 2010 г.
- SRR — передача сообщений, совместимая с QNX API, для Linux
- Страница загрузки программного обеспечения Cogent DataHub (включая модуль ядра SRR)