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

Большинство встраиваемых систем предназначены для управления объектами или мониторинга параметров внешней среды, что накладывает жесткие ограничения на время реакции системы при обработке событий [1], поэтому одно из главных требований к встраиваемой ОС — обеспечение выполнения многозадачного приложения в условиях реального времени. Кроме того, немаловажными для встраиваемых систем являются компактность, автономность и безопасность, что означает минимизацию используемых для нужд ОС ресурсов, наличие режима энергосбережения, повышенные требования к скорости выполнения системных функций и высокую отказоустойчивость (обработку исключительных ситуаций и ошибок в приложении, контроль системного стека и стека задач). Когда речь идет о работе распределенной системы, состоящей из множества устройств, то дополнительно к требованиям для отдельных устройств возникает задача организации структуры этой системы, мониторинга состояния каждого устройства, обеспечения надежной связи между ними, резервирования оборудования и т. д.

Сегодня на рынке встраиваемых ОС есть как открытые (FreeRTOS, eCos, RTEMS, ChibiOS), так и проприетарные решения (µC/OS, VxWorks, ThreadX, VDK) [2]. Однако, несмотря на разнообразие предложений на рынке, при интеграции ОС в конкретный проект разработчики часто сталкиваются со множеством проблем, в числе которых ограниченный функционал, отсутствие доступа к исходным кодам, несовместимость с аппаратной платформой, скудная документация, отсутствие технической поддержки, сложность программного интерфейса и т. д. Для разработки встраиваемых распределенных систем, ориентированных на отечественную элементную базу, российским разработчикам и пользователям нужна ОС, позволяющая упростить процесс разработки ПО и устранить возможные ограничения, связанные с применением западных программно-аппаратных платформ.

Проект ОСРВ МАКС (Операционная Система Реального Времени для МультиАгентных Когерентных Систем) стартовал в 2015 году, и его результатом стало то, что сегодня на рынке появилась система, не только отвечающая стандартным требованиям к ОС реального времени, но и обладающая дополнительными возможностями по обеспечению взаимодействия между устройствами в распределенной среде. Система поставляется с комплектом русскоязычной документации, поддерживает работу с оборудованием отечественного производства (продукция «ПКК Миландр» — 32-разрядные микроконтроллеры серий 1986 и 1967), а ее техническая поддержка осуществляется российскими специалистами. Кроме того, к исходным кодам системы прилагаются шаблоны проектов для различных сред разработки и готовые программы, помогающие пользователям быстро освоить ОС, настраивать и создавать новые приложения.

В состав ядра системы (рис. 1), обеспечивающего работу многозадачного приложения, входят: планировщик (диспетчер), объекты синхронизации (семафоры, события и др.) и средства обеспечения взаимодействия задач (очереди сообщений). Планировщик поддерживает два режима многозадачности.

  • Кооперативная многозадачность снижает накладные расходы работы системы за счет исключения лишних переключений задач и использования объектов синхронизации. Режим позволяет заранее предопределить...
Это не вся статья. Полная версия доступна только подписчикам журнала. Пожалуйста, авторизуйтесь либо оформите подписку.
Купить номер с этой статьей в PDF