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

 

Возможности

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

  • Потоки (нити)
  • Барьеры
  • Блоки памяти
  • Семафоры (в том числе бинарные)
  • События
  • Таймеры
  • Мьютексы (с защитой от инверсии приоритета)
  • RW-блокировки
  • Условные переменные
  • Очереди сообщений

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

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

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

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

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

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


Легкость использования

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