Операционная система реального времени (RTOS) – ОС для устройств и систем, которым необходима быстрая реакция на внешние изменения (рис. 1). К примеру, в случае отказоустойчивого программного обеспечения RTOS должна не допускать выполнения процесса с более низким приоритетом при запуске задачи с более высоким приоритетом. Например, LIDAR и процесс обработки видеоизображений, используемые автономными системами для безаварийной работы беспилотных автотранспортных средств, требуют значительных вычислительных мощностей. Любая сложная система с функцией обеспечения безопасности жизнедеятельности должна иметь RTOS, чтобы процессор смог быстро принимать решения. RTOS не надо использовать, когда в ней нет крайней необходимости, но без нее не обойтись, если в системе есть хотя бы один процесс, который следует прервать, чтобы была возможность реагировать на задачи с более высоким приоритетом. Традиционные МК не запускают одновременно несколько потоков и не имеют сложной системы прерываний. Когда-то благодаря таким МК встраиваемые системы широко распространились, поскольку их было достаточно для решения простых задач, а стоимость высокопроизводительных решений была велика.
Современные встраиваемые системы включают в себя решения на микроконтроллерах для простой обработки данных в одном цикле и высокопроизводительные и нагруженные процессорные системы, которые способны обеспечивать быстрое выполнение любых требуемых задач. Широко распространилось отказоустойчивое программное обеспечение: программируемый логический контроллер (ПЛК) оснащается таким ПО уже на этапе производства. В то же время аппаратные средства обеспечения отказоустойчивости по-прежнему применяются в ответственных процессах или системах, например, в аппаратах для лечения раковых заболеваний, в оборудовании АЭС и в системах жизнеобеспечения.
RTOS необходима, когда при наличии нескольких процессов и устройств время выполнения процессов важнее, чем средняя производительность. Иными словами, RTOS необходима, когда стоит задача запуска нескольких процессов в определенное время. Она гарантирует тайминг выполнения требуемых задач, имеет меньшую задержку, может точно определить, выполнена ли задача, и дает возможность выполнять как срочные, так и некритичные по времени задачи.
RTOS эффективно использует прерывания, основанные на приоритете в расписании. В отличие от ОС общего назначения, она обеспечит выполнение задач в срок, вне зависимости от складывающегося сценария.
Отличительная особенность RTOS - в том, что она должна быть многопоточной, работать на опережение и обеспечивать приоритетность потока. RTOS включает систему наследования по приоритету, предсказуемо поддерживает синхронизацию потоков и имеет механизм предотвращения инверсии приоритетов. Инверсия приоритетов – это ситуация, при которой менее значимая задача использует ресурсы более важной задачи, откладывая ее решение. Кроме того, одним из основных свойств RTOS является предсказуемость задержки при обработке прерывания.
Разработчики RTOS должны детально информировать пользователей об уровнях системных прерываний, системных вызовах и таймингах. Им необходимо знать максимальное время, в течение которого ОС и драйверы маскируют прерывания. Задержка прерывания, то есть время между его возникновением и запуском инициируемой прерыванием задачи, должна быть предсказуема и соответствовать требованиям приложения. В качестве примеров RTOS можно привести VxWorks, QNX, Win CE, pSOS, Nucleus® RTOS, FreeRTOS™, Zephyr™ Project.
Система жесткого реального времени гарантирует, что задачи будут выполнены в пределах установленного дедлайна – предельного времени завершения задачи. Такая система обычно требуется, когда возможна гибель людей, если сроки обработки (дедлайна) не соблюдаются. Пример жесткого реального времени - система останова АЭС или система управления полетом.
Мягкая система реального времени более щадящая; сроки важны, но только в средневзвешенном смысле. Примером мягкой системы реального времени является система сбора данных. Firm RTOS- нечто среднее между мягкой и жесткой. Эта система, в основном, работает как мягкая, но также может иметь несколько жестких дедлайнов.
Заметим, что жесткий и мягкий режимы реального времени не обязательно связаны с абсолютным значением времени.