Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Ч.4. Учебное пособие
.pdf
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. Конфигурируемость.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
