Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.4. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
3.2. Специализированные ОС РВ
41
− ограниченная поддержка приложений;
− сложность разработки.
Существует версия LynxOS 178, сертифицированная в соответствии со
стандартом DO 178. Это означает полное соответствие требованиям к надежности для мобильных систем военного и аэрокосмического примене­ния. Кроме того, LynxOS 178 имеет сертифицированный стек TCP/IP для ответственных приложений в области авионики, медицины, атомной про­мышленности и связи. Также выделяют следующие требования:
1. детерминизм поведения в условиях динамической нагрузки на
систему;
2. гарантия невозможности полного отказа системы;
3. соответствие различным международным стандартам;
4. минимизация вероятности возникновения сбоя в ПО;
5. в системе должны быть предусмотрены средства информационной
безопасности.
Microsoft Windows Embedded [14]
Используется во встраиваемых системах и состоит из множества кон­фигурируемых частей. В соответствии с версиями ОС Windows широкое распространение получили следующие виды:
1. NT,
2. XP.
За счет наличия конфигурируемых частей возможно выполнять мани­пулирование установленным ПО.
Благодаря ресурсам Windows NT появляется возможность выполнять реализацию приложений, которые могут быть интегрированы в существу­ющую информационную инфраструктуру. Кроме того, данная ОС имеет специфические компоненты, используемые в целях разработки встраивае­мых систем и обработки ошибок.
База компонент Windows XP Embedded насчитывает до 10 000 отдель­ных элементов: сервисов, приложений, библиотек и драйверов. Ей свой­ственно чёткое разграничение компонент системы, за счёт чего при созда­нии системы появляется возможность включать только необходимые наборы функций, что приведёт к максимальному сокращению размера ре­зультирующей системы. Все опции конфигурации собраны воедино в БД компонент, доступ к которой имеет разработчик. Он может выполнять
3. Классификация ОС РВ
42
редактирование этой БД при помощи механизма Component Data- base Manager.
pSOS [15]
Является ядром встраиваемых приложений и обладает клиент-сервер­ной архитектурой. Внутри системы находится специальная программная шина, вокруг которой строится взаимодействие модулей системы. При сборке и компиляции системы есть возможность выбрать и подключить следующие модули в процессе компиляции:
1. модули для работы с файловой системой;
2. отладчик приложений;
3. сетевые протоколы;
4. библиотека удаленных вызовов процедур;
5. стандартная библиотека ANSI C.
Многопроцессорное ядро pSOS+m выполняет системные вызовы, при помощи которых происходит оперирование через границы процессора. При этом только один узел может быть охарактеризован как «главный», а остальные узлы являются «подчиненными».
Система преимущественно обрабатывает задачи или потоки в одном процессе. Между потоками можно распределить и разделить использование системных объектов и ресурсов. При этом все потоки разделяют один и тот же контекст, поэтому время переключения будет минимальным.
Модель памяти pSOSsystem интересна тем, что она имеет несегменти­рованную структуру (см. рис. 14). Для работы с памятью применяется спе­циальная библиотека управления, она же помогает организовать защиту объектов. Это же характерно не только для простых структур данных, но и для специализированных объектов типа блоков исполняемого кода, стеков различного вида и т.п. Защита памяти срабатывает для каждой задачи в от­дельности.
Рис. 14. Шаблон мозаичной архитектуры
3.2. Специализированные ОС РВ
43
pSOSsystem реализует всего две абстракции для управления памятью:
регионы и разделы:
1. регионы – это отдельные фрагменты памяти, размер которых не
фиксирован;
2. разделы – это фрагменты памяти, размер которых фиксирован.
У этой системы также есть определенные недостатки. Например, счи-
тается, что управление памятью является достаточно примитивным и неин­теллектуальным. Также есть такие объекты поведения системы, как мьютексы и механизм наследования приоритетов, а это уже является при­чиной инверсии приоритетов.
Для встраиваемых приложений, интегрированных в клиент-серверные вычислительные среды, pSOS предлагает полный набор широко использу­емых средств, включая FTP-клиент/ сервер, TFTP, RPC/XDR, клиент/сервер NFS, клиент/сервер Telnet, системная графика Shell и X Window. Даже здесь pSOS выделяется как первая программная среда для встраиваемых систем, предлагающая как клиентскую, так и серверную поддержку NFS, а также предоставляющая исходный код RPC, совместимый с моделью RPC Open Network Computing (ONC) и гетерогенной вычислительной средой Sun
Microsystems RPC/XDR.
pSOS предлагает поддержку файловых систем в формах, гармонирую­щих с операциями встроенных систем, управляемых событиями. Пакет файловой системы pSOS поддерживает устройства хранения от микродис­кет до гигабайтных массивов через две файловые системы: иерархическую файловую систему, совместимую с MS-DOS, и файловую систему, подоб­ную UNIX. Обе файловые системы прозрачно подключаются к сетевым файлам UNIX и поддерживают стандартные файловые утилиты UNIX, та­кие как grep, vi и т.д. Среда разработки pSOS отличается гибким выбором инструментов, которые позволяют пользователям пройти самый прямой путь от концепции приложения до готового продукта. Сетевая кросс-среда разработки pSOS основана на концепции максимального приближения разработчиков к тому, что действительно происходит в целевой системе. Отражая давнее наследие pSOS как компонентной архитектуры, разработ­чики могут выбирать из множества решений, начиная от специализирован­ных одноцелевых инструментов и заканчивая полными средами интегра­ции инструментов.
3. Классификация ОС РВ
44
RTEMS [16]
RTEMS является некоммерческой ОС РВ, разработанной с учётом раз-
личных открытых стандартов, включая POSIX и uITRON, и предназначен­ной для глубоко встраиваемых систем. Применяется в системах управления ракетными комплексами, имеет открытый исходный код и рассчитана на платформы MS Windows, Unix и Linux.
RTEMS, в отличии от многих других ОС, не поддерживает динамиче-
скую загрузку приложений «по ходу работы». В связи с такой особенно­стью системы, основной сферой ее применения являются встраиваемые си­стемы. Как известно, во встраиваемых системах, не предусматривается ча­стое изменение состава программного обеспечения и динамическая за­грузка программного кода. Набор многоуровневых компонент RTEMS представлен на рис. 15.
Рис. 15. Набор многоуровневых компонент RTEMS
Другим недостатком ОС называют слабую поддержку файловых си-
стем различного типа.
Однако RTEMS может быть рассмотрена как набор компонентов, с по-
мощью которых обеспечиваются базовые сервисные функции для прило­жений. Программный интерфейс состоит из отдельных объектов, называе­мых директивами. Директивы распределены по логическим наборам и у каждого набора есть свой соответствующий менеджер. Примерами таких
3.2. Специализированные ОС РВ
45
функций могут являться процедуры распределения процессорного вре­мени, функции диспетчеризация и управление объектами. Все они в основ­ном реализованы в ядре ОС. В ядре ОС содержатся следующие наборы про­цедур, которые зависят от типа процессора: это процедуры доступа к физи­ческой памяти, процедуры инициализации контроллера прерываний, адап­теров, интерфейсов, периферийных устройств и пр.
RTEMS отличается от других ОС РВ по ряду характеристик и осо- бенностей.
− Гибкость и масштабируемость. Позволяет RTEMS работать на
различных аппаратных платформах, включая однопроцессорные и много­процессорные системы.
− Открытый исходный код. Позволяет разработчикам иметь доступ
к исходному коду системы, вносить изменения и настраивать ее под свои потребности.
− Поддержка множества аппаратных платформ. Предоставляется
поддержка большого количества аппаратных платформ, включая процес­соры различных архитектур (например, ARM, PowerPC, MIPS) и специали­зированные контроллеры.
− Предсказуемость и жесткие временные ограничения. Обеспечи-
вается надежное выполнение задач с минимальными задержками и жест­кими временными ограничениями.
− Расширяемость и модульность: Модульная архитектура позво-
ляет разработчикам добавлять и удалять компоненты системы по мере необходимости. За счёт этого можно создавать настраиваемые конфигура­ции RTEMS, оптимизированные для конкретных проектов и требований.
− Широкий спектр приложений. RTEMS находит применение в
различных отраслях, включая: проекты промышленной автоматизации, ме­дицинскую технику и системы, индустрию транспорта, авиацию, автомо­бильную промышленность.
Среди основных недостатков данной ОС РВ следует выделить: слож­ность настройки, ограниченность документации, ограниченное сообще­ство, отсутствие графического интерфейса, ограниченную поддержку.
DeltaOS [17]
Представляет собой ОС РВ для встраиваемых приложений. Разрабо­тана китайской корпорацией CoreTek Systems. Система поддерживается для
3. Классификация ОС РВ
46
наиболее популярных семейств микропроцессоров, таких как PowerPC, Intel X86, ARM, MIPS. Может настраиваться и масштабироваться в широ­ком диапазоне систем реального времени, а также использоваться как в про­стых автономных устройствах, так и в сложных отказоустойчивых много­процессорных системах.
DeltaOS основана на ядре DeltaCore, которое построено на надежной технологии реального времени, включающей приоритетное прерывание об­служивания, многозадачность и детерминированное поведение. Ядро про­ектировалось на основе объектно-ориентированной парадигмы. Объек­тами, которыми оперирует DeltaOS, являются задачи, семафоры, события, таймеры, очереди сообщений, сегменты памяти. Планирование основано на приоритетах. Поддерживается планирование с вытеснением, циклическое и на основе разделения времени. Обработка прерываний осуществляется че­рез обработчика вне ядра. Для обеспечения быстрой обработки прерывания можно передавать непосредственно в обработчик. Системные вызовы, сде­ланные из обработчика, возвращают ему управление, сокращая, таким об­разом, временные затраты механизма планирования в ядре.
PikeOS [18]
Коммерческая операционная система с жестким режимом реального
времени (RTOS), которая предлагает гипервизор на основе ядра разделения
с несколькими типами логических разделов для многих других операцион-
ных систем (ОС), каждая из которых называется GuestOS, и приложений.
Это позволяет пользователям создавать сертифицированные интеллекту-
альные устройства для Интернета вещей (IoT) в соответствии с высокими
стандартами качества, безопасности и защиты различных отраслей. Для обеспечения безопасности критически важных приложений реального вре­мени в системах на базе контроллеров без блока управления памятью (MMU), но с блоком защиты памяти (MPU) доступна PikeOS для MPU.
В настоящее время доступны следующие интерфейсы прикладного программирования, среды выполнения и гостевые операционные системы.
− Родной интерфейс PikeOS.
− ARINC 653.
− PoSIX PSE51 и PSE52.
− Linux.
− Android.
3.2. Специализированные ОС РВ
47
− JAVA в реальном времени.
− RTEMS.
− ITRON.
Процессоры, поддерживаемые PikeOS, включают архитектуры
PowePC , x86 , ARM , MIPS и SuperH. Для строгого разделения системных
ресурсов процессор должен иметь блок управления памятью. Начиная с версии 3.1, PikeOS поддерживает многоядерность. Пространства PikeOS представлены на рис. 16.
Рис. 16. Пространства PikeOS
Преимущества:
− Операционная система реального времени, включая гипервизор
типа 1, определенная для очень гибкой конфигурации.
− Поддерживает быструю или безопасную загрузку.
− Поддержка смешанной критичности через ядро разделения в одной
системе.
− Поддерживаемые драйверы ядра и пространства пользователя.
− Аппаратная независимость между типами и семействами про-
цессоров.
− Простота процессов миграции и высокая переносимость на одно-
ядерных и многоядерных.
− Разработан для поддержки сертификации в соответствии с несколь-
кими стандартами безопасности.
− Нет ограничений на экспорт: европейское решение.
В пространстве ядра PikeOS реализован набор пакетов для поддержки архитектур и платформ, существующих для конкретного аппаратного обес­печения (x86, PowerPC, SuperH и др.) в дополнение к разделяемому ядру,
3. Классификация ОС РВ
48
отвечающему за платформу виртуализации. В PikeOS поддерживаются не только гостевые операционные системы, но и простые прикладные про­граммные интерфейсы (API) или среды исполнения (runtime environment) для определенной предметной области.
Уровень системного ПО PikeOS выделяет ресурсы (в терминах про­странства и времени) для гостевых операционных систем. Система исполь­зует паравиртуализацию, так что гостевые операционные системы не подо­зревают, что они работают в виртуальной среде.
Embox [19]
Embox – операционная система реального времени, ориентированная на применение в широком спектре встроенных систем, а также различных роботизированных устройствах с ОС жесткого реального времени.
Ядро ОС Embox построено на принципах модульности и конфигури­руемости. В отличие от монолитных ядер (таких, как Linux) весь код орга­низован в различные модули. Каждый модуль реализует свой интерфейс, например интерфейс диспетчера памяти или планировщика задач. При кон­фигурации системы можно выбирать, какие модули будут включены в об­раз. Таким образом, достигается создание образа, нацеленного на конкрет­ную задачу, будь то система для тестирования аппаратного обеспечения либо полноценная ОС, включающая сетевую и файловую подсистемы.
Подобные принципы построения упрощают разработку и отладку от­дельных модулей системы. Причем это относится как к драйверам, так и к различным модулям, обеспечивающим функции ядра (распределение ре­сурсов, межпроцессорный обмен и т.д.).
Еще одним важным свойством таких принципов построения является возможность применять различные стратегии планирования ресурсов. Например, можно создать образ ядра системы, обладающий классическими менеджерами ресурсов (диспетчером памяти, потоков и т.д.), а можно со­здать образ, запускающий определенный поток по определенному собы­тию, что уменьшит накладные расходы на планирование задач. Или, напри­мер, создать образ, позволяющий привязывать задачу к каким-то ресурсам системы, процессорному ядру, области памяти и т.д. Такие свойства ОС Embox достигаются за счет возможности задать различные реализации си­стемных диспетчеров ресурсов.
Во встроенных системах используют различные процессорные архитек­туры, иногда специально нацеленные на какой-то класс задач. Например,
3.2. Специализированные ОС РВ
49
сетевые процессоры, построенные по принципам несимметричной много­ядерности.
Embox портирован на такие широко применяемые во встроенных си­стемах архитектуры, как MicroBlaze, ARM, SPARC v8 (LEON3), а также имеется возможность запускать его на x86 архитектуре. Вследствие мо­дульной структуры процесс портирования на новые платформы – доста­точно легкая задача. В отличие от ядра Linux, где необходимо портировать сразу все архитектурные части (прерывания, таймеры, виртуальную па­мять и т.д.), Embox может быть запущен с минимальным набором подоб­ных подсистем, например, можно даже не реализовывать подсистему пре­рываний, а портировать только ввод/вывод и уже с помощью него отла­дить остальные части.
Важную роль для ОС играют средства разработки и отладки пользова­тельских программ, драйверов, а также самого ядра ОС.
Ядро ОС Embox написано на языке C, при этом использовался компи­лятор с открытым исходным кодом GCC, позволяющий осуществлять сборку системы для различных архитектурных платформ. Остальные сред­ства разработки также доступны в свободном доступе под свободной ли­цензией; в качестве IDE используется Eclipse, в качестве отладчика – GDB.
Сейчас для разработки пользовательских приложений используется язык C. Проект частично поддерживает стандарт POSIX, но может быть вы­бран другой интерфейс взаимодействия с пользовательским приложением.
Соответственно можно для различных классов задач задавать специ­фичные интерфейсы взаимодействия ядра и пользовательского приложе­ния. Это позволяет разрабатывать проблемно-ориентированные языки (DSL, domain-specific language) и на их основе графические CASE-средства. В итоге можно легко создавать и моделировать алгоритмы, ориентирован­ные на конкретный тип задач.
Еще одной важной характеристикой для ОС является набор служебных библиотек, которые упрощают разработку и расширяют возможности дан­ной ОС. К таким библиотекам прежде всего относят сетевой стек и файло­вую подсистему. Обе эти подсистемы поддержаны в Embox.
Допустим, у нас есть два вычислительных потока, выполняющих одну и ту же программу, и есть планировщик, который в произвольный момент времени перед выполнением любой инструкции может прервать активный
3. Классификация ОС РВ
50
поток и активировать другой. Для управления подобными задачами уже не­достаточно информации только о функции вызова потока и ее параметрах, как в случае с невытесняющими планировщиками. Как минимум, еще нужно знать адрес текущей выполняемой инструкции и набор локальных переменных для каждой задачи. То есть для каждой задачи нужно хранить копии соответствующих переменных, а так как локальные переменные для потоков располагаются на его стеке, то должно быть выделено простран­ство под стек каждого потока, и где-то должен храниться указатель на те­кущее положение стека.
Итак, для описания задачи в случае с вытесняющим планировщиком
нам понадобится достаточно сложная структура, включая:
− информацию о регистрах процессора (контексте);
− информацию о состоянии задачи, готова ли она к выполнению или,
например, ждет освобождения какого-либо ресурса;
− идентификатор. В случае с массивом это индекс в массиве, но если
потоки могут добавляться и удаляться, то лучше использовать очередь, где идентификаторы и пригодятся;
− адрес куска памяти, который выделен под стек, поскольку при вы-
ходе из потока его нужно освободить.
Сетевой стек содержит реализацию протоколов стандартного IP-стека
(IP, ICMP, UDP, TFTP, ARP), а также набор стандартных сетевых утилит, таких как ifconfig, route, arp, ping и так далее. Кроме того, Embox поддер­живает сокеты.
Файловая подсистема Embox также является интересной. В первую очередь это выражается в том, что в ее основе находится именно логическая файловая система, к которой можно подключать различные драйверы и адаптеры. Именно такое подключение реализует уже конкретную файло­вую систему, привычную для нас. Этот единый файловый интерфейс POSIX и позволяет работать с файлами или физическими устройствами конкретных аппаратно-программных комплексов.
Проведя подробный анализ, мы можем сказать, что Embox – это дей­ствительно ОС жесткого реального времени с открытым исходным кодом, которая обладает следующими свойствами:
1. Модульность.
2. Конфигурируемость.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]