Операционная система реального времени против обычной: как выбрать RTOS

Основная задача ОС - распределение ресурсов системы между приложениями, зависящими от этих ресурсов. Операционные системы содержат некоторые важные элементы, такие как планировщик процессов, задачи, управление памятью, и, собственно, систему: интерфейс, многозадачность файловых систем и синхронизацию, обработку прерываний, таймеры и часы, коммуникации между задачами, ввод-вывод и управление памятью. Операционная система реального времени (RTOS) – ОС для устройств и систем, которым необходима быстрая реакция на внешние изменения
1172
В избранное

Как правило, микроконтроллеры (МК) не имеют операционной системы. Раньше большинство встраиваемых систем работало на микроконтроллерах, которые постоянно выполняли одну и ту же программу, не требуя человеческого вмешательства. Несмотря на это, граница между микроконтроллерами и процессорами достаточно размыта. МК имеют линии портов ввода/ вывода общего назначения (GPIO), часто подключающиеся к одному или нескольким датчикам и устройствам, которые активируются в соответствии с написанной пользователем программой для микроконтроллера.

Поскольку стоимость вычислительных операций резко снизилась, а производительность их, наоборот, выросла, многие встраиваемые устройства стали оснащаться высокопроизводительными процессорами с разнообразной периферией и функционалом. Чем больше задач и вычислений задействовано, тем в большей степени нужна операционная система для упрощения организации и общей координации работы встраиваемого устройства.

Основная задача ОС заключается в распределении ресурсов системы между приложениями, зависящими от этих ресурсов. Операционные системы содержат некоторые важные элементы, такие как планировщик процессов, задачи, управление памятью, и, собственно, систему: интерфейс, многозадачность файловых систем и синхронизацию, обработку прерываний, таймеры и часы, коммуникации между задачами, ввод-вывод и управление памятью.

Пример встроенной системы реального времени

Рис. 1. Пример встроенной системы реального времени

Операционная система реального времени (RTOS) – ОС для устройств и систем, которым необходима быстрая реакция на внешние изменения (рис. 1). К примеру, в случае отказоустойчивого программного обеспечения RTOS должна не допускать выполнения процесса с более низким приоритетом при запуске задачи с более высоким приоритетом. Например, LIDAR и процесс обработки видеоизображений, используемые автономными системами для безаварийной работы беспилотных автотранспортных средств, требуют значительных вычислительных мощностей. Любая сложная система с функцией обеспечения безопасности жизнедеятельности должна иметь RTOS, чтобы процессор смог быстро принимать решения. RTOS не надо использовать, когда в ней нет крайней необходимости, но без нее не обойтись, если в системе есть хотя бы один процесс, который следует прервать, чтобы была возможность реагировать на задачи с более высоким приоритетом. Традиционные МК не запускают одновременно несколько потоков и не имеют сложной системы прерываний. Когда-то благодаря таким МК встраиваемые системы широко распространились, поскольку их было достаточно для решения простых задач, а стоимость высокопроизводительных решений была велика.

Современные встраиваемые системы включают в себя решения на микроконтроллерах для простой обработки данных в одном цикле и высокопроизводительные и нагруженные процессорные системы, которые способны обеспечивать быстрое выполнение любых требуемых задач. Широко распространилось отказоустойчивое программное обеспечение: программируемый логический контроллер (ПЛК) оснащается таким ПО уже на этапе производства. В то же время аппаратные средства обеспечения отказоустойчивости по-прежнему применяются в ответственных процессах или системах, например, в аппаратах для лечения раковых заболеваний, в оборудовании АЭС и в системах жизнеобеспечения. 

Когда необходимо использовать RTOS?

RTOS необходима, когда при наличии нескольких процессов и устройств время выполнения процессов важнее, чем средняя производительность. Иными словами, RTOS необходима, когда стоит задача запуска нескольких процессов в определенное время. Она гарантирует тайминг выполнения требуемых задач, имеет меньшую задержку, может точно определить, выполнена ли задача, и дает возможность выполнять как срочные, так и некритичные по времени задачи.

RTOS эффективно использует прерывания, основанные на приоритете в расписании. В отличие от ОС общего назначения, она обеспечит выполнение задач в срок, вне зависимости от складывающегося сценария.

Отличительная особенность RTOS - в том, что она должна быть многопоточной, работать на опережение и обеспечивать приоритетность потока. RTOS включает систему наследования по приоритету, предсказуемо поддерживает синхронизацию потоков и имеет механизм предотвращения инверсии приоритетов. Инверсия приоритетов – это ситуация, при которой менее значимая задача использует ресурсы более важной задачи, откладывая ее решение. Кроме того, одним из основных свойств RTOS является предсказуемость задержки при обработке прерывания.

Разработчики RTOS должны детально информировать пользователей об уровнях системных прерываний, системных вызовах и таймингах. Им необходимо знать максимальное время, в течение которого ОС и драйверы маскируют прерывания. Задержка прерывания, то есть время между его возникновением и запуском инициируемой прерыванием задачи, должна быть предсказуема и соответствовать требованиям приложения. В качестве примеров RTOS можно привести VxWorks, QNX, Win CE, pSOS, Nucleus® RTOS, FreeRTOS™, Zephyr™ Project.

На что обратить внимание при выборе RTOS:

  • Какими возможностями в режиме реального времени обладает система? Заложено ли в ней применение мягкой или жесткой обработки прерывания, и какие имеются сервисы планирования?
  • Поддерживает ли целевой процессор необходимую RTOS? Применялась ли она для таких задач ранее?
  • Насколько велик объем, который RTOS занимает в памяти? Для устройств IoT требуется, чтобы система занимала небольшие объемы памяти, поэтому лучше использовать Zephyr или, возможно, FreeRTOS. То, как вы настроите RTOS, также повлияет на объем, который будет занимать система в памяти устройства, поскольку объем памяти зависит от служб, которые используются приложением.
  • Каковы задержки обработки прерываний?
  • Как долго происходит переключение контекстов? (Задержка переключения контекста – это время, необходимое для записи состояния процесса или потока и его последующего запуска с момента остановки. В такой ситуации несколько процессов смогут использовать один процессор).
  • Какие интерфейсы требуются для решения задачи, и возможна ли их работа с выбранной RTOS?
  • Возможны ли отладка и настройка RTOS с выбранным процессором, присутствуют ли необходимые для приложения драйверы?
  • Какие средства разработки и отладки совместимы с RTOS?
  • Какова стоимость RTOS, доступность исходных кодов? В случае открытого исходного кода следует уточнить совместимость лицензий и проверить стабильность работы ядра.
  • Доступность и качество технической документации или форум поддержки разработчиков.
  • Какова репутация поставщика RTOS?
  • Может ли конкурирующая компания приобрести RTOS (а затем отказаться от ее поддержки)?
  • Насколько гибок алгоритм планирования? Например, алгоритмы FIFO, циклический алгоритм (round Robin), монотонный, спорадический и так далее.
  • Есть ли возможность удаленной диагностики?
  • Какая RTOS необходима: жесткая или мягкая?

Системы жесткого и мягкого реального времени

Система жесткого реального времени гарантирует, что задачи будут выполнены в пределах установленного дедлайна – предельного времени завершения задачи. Такая система обычно требуется, когда возможна гибель людей, если сроки обработки (дедлайна) не соблюдаются. Пример жесткого реального времени - система останова АЭС или система управления полетом.

Системы жесткого и мягкого реального времени

Мягкая система реального времени более щадящая; сроки важны, но только в средневзвешенном смысле. Примером мягкой системы реального времени является система сбора данных. Firm RTOS- нечто среднее между мягкой и жесткой. Эта система, в основном, работает как мягкая, но также может иметь несколько жестких дедлайнов.

Заметим, что жесткий и мягкий режимы реального времени не обязательно связаны с абсолютным значением времени.

В параметрическом каталоге Терраэлектроники можно выбрать отладочную плату, поддерживающую нужную RTOS

 

Производитель: Texas Instruments
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
MSP-EXP430FR5969
MSP-EXP430FR5969
Texas Instruments
Арт.: 1131041 ИНФО PDF
Доступно: 31 шт. от: 1820 руб.
Отладочный набор на основе микроконтроллера MSP430FR5969.
MSP-EXP430FR5969 1820,00 от 3 шт. 1560,00 от 5 шт. 1400,00 от 11 шт. 1300,00 от 28 шт. 1230,00
3 шт.
(на складе)
28 шт.
(под заказ)
MSP-EXP432P401R
MSP-EXP432P401R
Texas Instruments
Арт.: 1903566 ИНФО PDF
Доступно: 35 шт. от: 1920 руб.
MSP-EXP432P401R – бюджетная отладочная плата семейства LaunchPad, которая позволит с легкостью создавать высокопроизводительные решения с низким энергопотреблением
MSP-EXP432P401R 1920,00 от 3 шт. 1650,00 от 5 шт. 1480,00 от 10 шт. 1370,00 от 26 шт. 1310,00
9 шт.
(на складе)
26 шт.
(под заказ)
Производитель: OLIMEX Ltd.
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
STM32-E407
STM32-E407
OLIMEX Ltd.
Арт.: 1204298 ИНФО PDF
Доступно: 17 шт. от: 3260 руб.
STM32-E407 – недорогая отладочная плата на базе высокопроизводительного ARM Cortex-M4F микроконтроллера STM32F407ZGT6 от STMicroelectronics
STM32-E407 3260,00
9 шт.
(на складе)
8 шт.
(под заказ)
Производитель: Embedded Artists AB
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
EA-QSB-016
EA-QSB-016
Embedded Artists AB
Арт.: 1227520 ИНФО
Доступно: 7 шт. от: 2630 руб.
EA-QSB-016 – простая в использовании отладочная плата на базе ARM Cortex-M4 микроконтроллера LPC4088 от NXP
EA-QSB-016 2630,00 от 2 шт. 2630,00 от 3 шт. 2630,00 от 8 шт. 2630,00 от 15 шт. 2630,00
2 шт.
(на складе)
5 шт.
(под заказ)
Производитель: STMicroelectronics
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
NUCLEO-L053R8
NUCLEO-L053R8
STMicroelectronics
Арт.: 1344935 ИНФО PDF AN RD
Доступно: 51 шт. от: 1600 руб.
NUCLEO-L053R8 - отладочная плата на базе микроконтроллера STM32L053R8T6, представляет собой гибкую платформу, позволяющую разработчикам реализовать собственные идеи и в кратчайшие сроки сделать прототип будущего изделия
NUCLEO-L053R8 1600,00 от 3 шт. 1370,00 от 6 шт. 1240,00 от 12 шт. 1150,00 от 31 шт. 1090,00
17 шт.
(на складе)
34 шт.
(под заказ)
NUCLEO-F091RC
NUCLEO-F091RC
STMicroelectronics
Арт.: 1899621 ИНФО PDF AN RD
Доступно: 52 шт. от: 1350 руб.
NUCLEO-F091RC – отладочная плата семейства STM32 Nucleo-64 на основе микроконтроллера STM32F091RCT6 с поддержкой Arduino и ST Morpho соединителей
NUCLEO-F091RC 1350,00 от 3 шт. 1160,00 от 7 шт. 1040,00 от 14 шт. 965,00 от 37 шт. 917,00
2 шт.
(на складе)
50 шт.
(под заказ)
STM32L476G-DISCO
STM32L476G-DISCO
STMicroelectronics
Арт.: 1930188 ИНФО PDF AN RD
Доступно: 28 шт. от: 2890 руб.
STM32L476G-DISCO –  отладочная плата на основе ARM Cortex-M4 микроконтроллера STM32L476VGT6 с плавающей запятой, ультранизким энергопотреблением, широким набором интерфейсов и функциональных модулей: 3 х I2C, 3 х SPI, 6 х USART, CAN, SWPMI, 2 х SAI, 12-bit ADC, 12-bit DAC, драйвер LCD, внутренняя 128 KБайт SRAM и 1 MБайт Flash память, Quad-SPI,  USB OTG FS, LCD контроллер, FMC, JTAG (поддержка отладки)
STM32L476G-DISCO 2890,00 от 2 шт. 2470,00 от 3 шт. 2230,00 от 7 шт. 2060,00 от 18 шт. 1960,00
19 шт.
(на складе)
9 шт.
(под заказ)
NUCLEO-F031K6
NUCLEO-F031K6
STMicroelectronics
Арт.: 2076819 ИНФО PDF AN RD
Доступно: 81 шт. от: 1160 руб.
NUCLEO-F031K6 – отладочная плата из линейки STM32 Nucleo-32, обеспечивающей пользователям доступный и гибкий способ проверить свои новые идеи и создать прототипы будущих изделий на основе микроконтроллеров STM32 в 32-выводном корпусе, выбирая различные комбинации производительности, потребляемой мощности и другие характеристики
NUCLEO-F031K6 1160,00 от 4 шт. 993,00 от 8 шт. 894,00 от 17 шт. 827,00 от 43 шт. 786,00
80 шт.
(на складе)
1 шт.
(под заказ)
NUCLEO-F303K8
NUCLEO-F303K8
STMicroelectronics
Арт.: 2087245 ИНФО PDF AN RD
Доступно: 52 шт. от: 1400 руб.
NUCLEO-F303K8  – отладочная плата из линейки STM32 Nucleo-32, обеспечивающей пользователям доступный и гибкий способ проверить свои новые идеи и создать прототипы будущих изделий на основе микроконтроллеров STM32 в 32-выводном корпусе, выбирая различные комбинации производительности, потребляемой мощности и другие характеристики
NUCLEO-F303K8 1400,00 от 3 шт. 1200,00 от 7 шт. 1080,00 от 14 шт. 998,00 от 36 шт. 948,00
2 шт.
(на складе)
50 шт.
(под заказ)
Производитель: Microchip Technology Inc.
Наименование
Производитель
Описание Корпус/
Изображение
Цена, руб. Наличие
ATSAMD20-XPRO
ATSAMD20-XPRO
Microchip Technology Inc.
Арт.: 1909092 ИНФО PDF RD
Доступно: 19 шт. от: 1670 руб.
ATSAMD20-XPRO – аппаратная платформа для оценки ARM Cortex-M0+ микроконтроллера ATMEL ATSAMD20J18A
ATSAMD20-XPRO 1670,00 от 2 шт. 1670,00 от 3 шт. 1670,00 от 6 шт. 1670,00 от 16 шт. 1670,00
13 шт.
(на складе)
6 шт.
(под заказ)

Сравнение позиций

  • ()