Ответ
Hard Real-Time (системы жёсткого реального времени) — это класс систем, в которых невыполнение задачи в строго заданный временной интервал (дедлайн) считается отказом системы и приводит к критическим последствиям (катастрофа, потеря оборудования, угроза жизни).
Ключевые характеристики:
- Детерминированность: Время отклика системы должно быть предсказуемым и гарантированным.
- Неприемлемость опозданий: Пропуск дедлайна так же плох, как и неправильный результат.
- Приоритет временных ограничений над функциональностью: Своевременность выполнения важнее общей пропускной способности.
Примеры из реального мира:
- Авионика: Система управления полётом должна обработать данные с датчиков и скорректировать элероны за строго определённые миллисекунды.
- Медицинские устройства: Дефибриллятор должен нанести разряд в точный момент сердечного цикла.
- Промышленная автоматизация: Контроллер, останавливающий конвейер при обнаружении человека, должен сработать немедленно.
Почему Node.js не подходит для Hard Real-Time?
- Event Loop: Обработка длительных синхронных операций блокирует цикл событий, вызывая непредсказуемые задержки.
- Сборка мусора (GC): Паузы, вызванные сборкой мусора, недетерминированы и могут нарушить временные ограничения.
- ОС общего назначения: Такие ОС, как Linux или Windows, не гарантируют время отклика из-за планировщика задач, прерываний и виртуальной памяти.
Технологии для Hard Real-Time: Для таких систем используют специализированные ОС реального времени (RTOS), такие как QNX, VxWorks, FreeRTOS, и языки, обеспечивающие детерминированное выполнение (C, C++, Ada, Rust с no_std).