Кто использует сигналы POSIX в реальном времени и почему?

Я не переворачиваюсь, я действительно не понимаю. Я только что прочитал о них целую кучу материалов и не могу понять, как их использовать. Я не говорю так много об API, для которого преимущества перед такими вещами, как signal (), достаточно очевидны. Скорее кажется, что сигналы RT предназначены для создания пользовательского пространства, но для чего? Единственное использование кажется примитивным IPC, но все указывает на то, что они являются паршивой формой IPC (например, неудобная, ограниченная информация, не особенно эффективная и т. Д.).

Итак, где и как они используются?

25
задан Sam Protsenko 15 September 2016 в 23:44
поделиться

1 ответ

Существуют и другие причины для использования сигналов в реальном времени. У меня есть приложение, которое взаимодействует с различными внешними устройствами и делает это с помощью комбинации средств (последовательный порт IO, даже прямая адресация некоторых карт старше, чем большинство знакомых вам людей). По определению, это приложение «реального времени» - оно взаимодействует с реальным миром в реальном времени, а не в «компьютерном времени».

Многое из того, что он делает, находится в процессе демона, который находится в основном цикле: обработка события, чтение информации, запись результатов в последовательные порты, сохранение данных в базе данных и т. Д., А затем циклическое повторение для другого события , Другие процессы на машине (пользовательские процессы) считывают информацию из БД, отображают ее и т. Д. Пользователь в этих других процессах может отправлять различные сигналы демону, чтобы предупредить его о различных условиях: остановка, изменение входных данных и так далее. Например, пользовательский процесс отправляет сигнал «стоп», подпрограмма обработчика сигналов демона имеет около 2 строк кода, устанавливающих переменную flag. Когда у демона появляется шанс, и это удобно, он останавливается. Код «прерывания» очень прост, быстр и неинвазивен. Но он служит цели, не требует сложных структур IPC и работает просто отлично.

Итак, да, есть причины для этих сигналов. В приложениях реального времени. При правильном обращении они работают просто отлично, спасибо.

0
ответ дан 28 November 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: