Программирование для встроенных систем - статьи

       

Для обеспечения функционирования сложных систем


Для обеспечения функционирования сложных систем цифровой обработки сигналов (ЦОС), таких как системы, реализующие протоколы беспроводной передачи данных в режиме реального времени, требуется специальные, адаптированные под конкретные приложения, аппаратные конфигурации. Такие конфигурации могут включать в себя несколько процессоров, а также специальные аппаратные ускорители для быстрого выполнения тех или иных функций. Для портирования алгоритмов на такие аппаратные системы необходим набор сервисов, поддерживающих коммуникации и синхронизацию между различными потоками в приложении. Обычно такие сервисы предоставляются операционной средой.
Для портирования стандартной операционной системы реального времени требуется от 3 до 20 человеко-месяцев, в зависимости от сложности системы. С другой стороны, для реализации задач ЦОС требуется только некоторое подмножество модулей ОС, и, соответственно, для портирования этих модулей нужно меньше времени, чем для портирования полноценной ОС.
В ходе работы были исследованы различные операционные среды, от больших, многофункциональных систем, таких как Linux и Symbian, до небольших, обладающих минимальным набором функций, таких как VsWorks, RTEMS и EUROS [1, 2, 4]. Особенностью всех этих систем является то, что они основываются на неразделяемом ядре с базовым набором модулей, таких как планировщик задач, менеджер управления прерываниями, менеджер драйверов ввода-вывода, набор примитивов синхронизации, системный таймер и т.д. При этом ни один из перечисленных модулей не может быть исключен из системы, даже если он не используется непосредственно приложением. По этой причине для портирования такой системы требуется заново реализовать все платформо-зависимые части ОС, что существенно увеличивает время портирования системы.
В настоящее время существуют несколько способов ускорения процесса портирования операционной системы. Например, в системе Choice [5] вся платформенно-зависимая часть ОС логически выделяется в так называемое «наноядро».


При таком подходе портирование ОС на новую платформу сводится к реализации наноядра. Другой метод [6] заключается в документировании методологии портирования посредством паттернов. Для создания и формализации шаблонов разработан специальный «язык паттернов». Такой подход позволяет формализавать процесс портиртировония ОС.  
Нами была разработана операционная система «мини-ОС», отличительными особенностями которой является модульность и конфигурируемость. Любой из базовых модулей может быть исключен из системы без необходимости модификации остальной части ОС. Данное свойство мини-ОС позволяет значительно ускорить процесс портирования системы на новую платформу, а также обеспечивает возможность оптимизации ОС под конкретный набор приложений.
Статья организована следующим образом. В разделе 2 обсуждаются концепция построения системы мини-ОС и основные требования, выдвигавшиеся к системе. Раздел 3 описывает структуру системы, её основные модули. В разделе 4 рассматриваются платформенно-зависимые части ОС в соответствии с использующими их модулями. В разделе 5 приводится пример портирования системы на многопроцессорную систему ARM_MUSIC.

Содержание раздела