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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
2.7. LynxOS-178
21
чрезвычайно коротким и быстрым блокам обработки прерываний и уни­кальной модели многопоточности ядра.
Благодаря этому она и была сертифицирована на соответствие стан-
дарту POSIX 1003.1–1996 после переноса на платформы Intel и PowerPC.
LynxOS-178 выполняет поддержку нескольких полностью разделен-
ных по времени, памяти и ресурсам разделов в соответствии с требовани­ями стандарта ARINC 653.
LynxOS-178 осуществляет поддержку:
1. работы до 16 виртуальных разделов, включая корневой процесс;
2. выполнения до 64 процессов;
3. диспетчеризацию потоков;
4. межпроцессного взаимодействия внутри каждого раздела.
Как уже упоминалось выше, каждый раздел является некоторым про-
странством с полной изоляцией. Благодаря этому никакой сбой системы не может быть распространен между разделами, т.е. сбой одного раздела ни­как не повлияет на работу других разделов, а сама система в целом продол­жит нормальную работу с небольшими «просадками» производительности.
LynxOS-178 поддерживает целую группу системных сервисов, позво-
ляющую эффективно обеспечить управление разделами, процессами, си­стемным временем, взаимодействием процессов внутри разделов, взаимо­действием процессов между разделами, мониторинг работоспособности операционной системы и аппаратного обеспечения.
Также следует отметить, что все фиксированные разделы ОС РВ об-
служиваются именно как отдельные виртуальные машины. В этой связи каждый прикладной процесс работает именно внутри его «собственной», т.е. изолированной среды операционной системы.
Управление разделами выполняется при помощи специальной таб­лицы конфигураций виртуальных машин. Это, в частности, дает возмож­ность выполнять разное программное обеспечения с учетом различных уровней безопасности – каждое в своем разделе. Иными словами, на одной вычислительной машине (на одном микропроцессоре), поддерживающей такой стандарт, мы можем запускать приложения с различными требовани­ями к надежности и безопасности.
3.1. Классические ОС РВ
22
3. КЛАССИФИКАЦИЯ ОС РВ
3.1. Классические ОС РВ
QNX [1]
Представляет собой ОС РВ, совместимую со стандартом POSIX. Она в основном используется во встраиваемых системах, хотя ее можно уви­деть и на персональных ЭВМ. Она имеет репутацию одной из лучших опе­рационных систем, предназначенных для реализации в соответствии с концепцией микроядерной архитектуры. Была разработана в 1982 г. ком­панией Blackberry.
QNX основана на нескольких ключевых принципах, которые обеспе­чивают ее надежность, предсказуемость и высокую производительность. QNX применяет микроядерную архитектуру, которая разделяет ядро опе­рационной системы на небольшие компоненты. Это позволяет легко до­бавлять и изменять функциональность системы, а также обеспечивает вы­сокую надежность и отказоустойчивость. Кроме того, микроядерная архи­тектура QNX обеспечивает строгую изоляцию между различными компо­нентами системы.
Поддерживает высокоэффективную многозадачность, позволяющую одновременно выполнять несколько задач на основе различных приорите­тов. Она обладает гибким механизмом планирования, который определяет, какие задачи получают доступ к процессорным ресурсам и в каком порядке.
Разработана с упором на надежность и отказоустойчивость. Она обес­печивает механизмы для обнаружения и восстановления от сбоев, включая защиту от переполнения стека, контроль целостности памяти и возмож­ность изоляции задач.
Предоставляет мощные механизмы для взаимодействия между различ­ными процессами и компонентами системы. Это включает межпроцессные сообщения, разделяемую память и сигналы, которые обеспечивают эффек­тивный и безопасный обмен данными и синхронизацию между задачами.
Является мультиплатформенной операционной системой и поддер­живает различные архитектуры процессоров, такие как x86, PowerPC, ARM и другие.
Существенным фактором, обеспечивающим высокую устойчивость систем на базе QNX, является концепция микроядра. Для создания
3.1. Классические ОС РВ
23
максимально предсказуемой конструкции разработчики QNX предельно облегчили ядро системы. Микроядро системы имеет размер около десяти килобайт. Это ядро позволяет разместить копию ОС вместе с драйверами для обработки прерываний на базе кэш-памяти процессора и позволяет обеспечить высокую производительность приложений параллельно с обра­боткой большого числа пользовательских задач.
QNX реализует модульную структуру, т.е. ядро ОС разделяется на не-
большие и легковесные компоненты.
Внутри системы находится микроядро. Микроядро – это базовая и фундаментальная часть архитектуры ОС РВ такого типа. Микроядро опре­деляет минимальный набор функций, обеспечивающий такие основные операции, как планирование выполнения процессов, взаимодействие и диспетчеризацию прерываний. Диспетчеризация QNX выполняется на ос­нове приоритетного переключения контекстов. При этом применяется концепция с циклическим переключением. Основной алгоритм переклю­чения – кольцевой (round-robin). Также используется очередь процессов типа FIFO (первый пришел – первый вышел). Планирование задач имеет адаптивный характер.
Микроядро окружено группой взаимодействующих процессов, предо­ставляющих услуги операционной системы высокого уровня.
В настоящее время данная ОС РВ применяется во встроенных систе­мах в широком спектре отраслей, включая:
1. автомобильную промышленность;
2. медицинское оборудование;
3. тяжёлую промышленность;
4. робототехнику;
5. железнодорожную отрасль;
6. промышленный контроль;
7. аэрокосмическую промышленность и оборону.
Архитектура ОС РВ QNX представлена на рис. 4.
В архитектуре QNX функциональность, которая обычно реализована в ядре операционной системы, вынесена в отдельные серверы. Это включает серверы управления памятью, файловой системы, сети, ввода-вывода и дру­гие. Разделение функциональности на серверы позволяет более гибко до­бавлять, изменять и обновлять функциональные компоненты системы без вмешательства в микроядро.
3. Классификация ОС РВ
24
Рис. 4. Архитектура ОС РВ QNX
Драйверы в QNX отвечают за взаимодействие с аппаратным обеспече­нием. Они обеспечивают доступ к периферийным устройствам, таким как диски, сетевые карты, графические ускорители и другие. Драйверы в QNX часто работают в виде пользовательских процессов, а не в привилегирован­ном режиме ядра, что повышает безопасность и стабильность системы.
В архитектуре QNX приложения и службы работают как клиентские процессы, которые взаимодействуют с серверами для получения необходи­мых сервисов и ресурсов. Клиентские процессы могут запускаться, оста­навливаться и взаимодействовать с другими процессами с использованием механизмов межпроцессного взаимодействия, предоставляемых QNX.
Изолированные друг от друга процессы QNX выполняются в собствен­ном виртуальном адресном пространстве. За это отвечает блок управления памятью, наличие которого в процессоре является обязательным.
Графическая подсистема QNX (см. рис. 5) строится на модульном принципе, так же точно, как и вся ОС. Она обеспечивает визуализацию гра­фических данных для пользователей на различных дисплеях: от монохром­ных панелей до полноцветных мониторов высокого разрешения. В системе имеется развитая система графических функций QNX (Photon microGUI), «движком» для которых является средство разработки многооконных при­ложений Photon Application Builder. Следует также отметить, что в QNX импортирована графическая библиотека X Windows, что делает ее по внеш­нему виду схожей со «старыми» образцами ОС Windows.
3.1. Классические ОС РВ
25
Рис. 5. Графический интерфейс Photon
QNX выполняет поддержку стандартных для ОС задач: это многоза-
дачность, планирование запуска приложений, синхронизация задач и процессов, управление памятью различного типа, управление подсистемой аппаратных и программных прерываний.
QNX обладает гибкой и эффективной файловой системой, которая
обеспечивает управление файлами и доступ к данным на различных носи­телях. Все данные в операционной системе хранятся в виде файлов. QNX взаимодействует со следующими файловыми системами: RAM, Flash,
QNX, Linux, DOS, CD-ROM, DVD, NFS, CIFS. Целевые платформы: ARM, MIPS, PowerPC, SH4, Strong ARM, XScale, x86.
Однако QNX имеет несколько отличий от привычных нам ОС. Напри-
мер, файловой системой тут управляет специальный процесс fsys. Он отве­чает за обработку стандартных запросов к файлам: чтение, запись, откры­тие, закрытие. Конечно, доступ к файлам в принципе не отличается от при­вычного метода, характерного для других Unix-подобных систем. Но фай­ловая система QNX построена следующим образом: при записи данных са­мые важные файлы записываются незамедлительно, но некритические дан­ные сначала помещаются в отдельный буфер, а потом уже записываются на
3. Классификация ОС РВ
26
носитель данных. В таком раскладе возникает небольшая задержка, однако уловить ее практически невозможно – она укладывается в заявленные диа­пазоны допусков стандарта.
Ядро QNX легковесное и занимает от 8 до 32 килобайт. Малый размер достигается за счет того, что ядро написано на языке ассемблера и оно в один и тот же момент выполняет всего 2 класса задач: передачу сообщений и планирование.
Для QNX разработана собственная сеть, которая называется qnet. Каж­дому компьютеру назначается свой собственный идентификатор (ID). Этот ID и позволяет узнать, работает ли экземпляр QNX как элемент сети или это просто обычная система. Работа в таких сетях выполняется прозрачно благодаря способности ОС осуществлять обмен сообщениями между мик­роядрами систем через сеть.
Также QNX обладает мощными возможностями для работы в сетевых окружениях, что позволяет интегрировать системы, обеспечивать связность и обмениваться данными между различными узлами сети. QNX поддержи­вает широкий спектр сетевых протоколов, например: TCP/IP, UDP, ICMP, IPv4 и IPv6. QNX поддерживает IP-маршрутизацию, что позволяет марш­рутизировать пакеты между различными сетевыми сегментами и узлами.
QNX предоставляет различные сетевые службы и сервисы, такие как DHCP, DNS, FTP, HTTP, SNMP и другие.
QNX имеет широкое применение в промышленных сетях и обеспечи­вает поддержку этих промышленных протоколов и позволяет интегриро­вать системы управления и устройства в промышленных сетях.
Графическая оболочка Photon microGUI является графическим пользо­вательским интерфейсом операционной системы QNX Neutrino, который можно использовать как любую другую графическую среду настольных компьютеров, т.е. пользователь может работать в ней с приложениями по­средством графических окон (см. рис. 5). Архитектура Photon расширяема и основана на микроядре. Такая модульная архитектура делает Photon быст­рым и гибким.
RTLinux [2]
Микроядерная ОС RTLinux относится к классу систем жёсткого реаль­ного времени. В ее основе также лежит ОС Linux. Разработана в 1996 г. группой американских разработчиков. Проект завершён в 2007 г.
3.1. Классические ОС РВ
27
В данной ОС ядро реального времени сосуществует с ядром Linux. Ос-
новная цель состоит в том, чтобы обеспечить доступность сложных служб и оптимизированное поведение системы в стандартных ситуациях разделе­ния и реального времени.
Ядро реального времени выполняет обработку прерываний. В том слу-
чае, если обработчик реального времени отсутствует, то прерывания направляются ядру Linux. Таким образом, ядро Linux представляет собой задачу ОС РВ, которая запускается только тогда, когда никакая другая за­дача РВ не исполняется. ОС Linux не может блокировать аппаратные пре­рывания и предохраняет их от вытеснения другой задачей. Драйвер выпол­няет перехват запроса с последующим его сохранением и возвращением управления ядру Linux.
Ядро ОС РВ выполняет перехват всех аппаратных прерываний. В мо-
мент прерывания ядром RTLinux определяется, какие операции следует вы­полнять. Если запрос на прерывание должен быть обработан специальным кодом в реальном времени, то ядро системы вызывает этот обработчик. Если непосредственный вызов не может быть выполнен немедленно, то об­работчику присваивается состояние ожидания (см. рис. 6).
Рис. 6. Система RTLinux
При помощи следующих средств осуществляется обмен данными
между ОС РВ и Linux:
1. разделяемые области памяти;
2. псевдоустройства.
3. Классификация ОС РВ
28
Главный принцип реализации RTLinux состоит в том, чтобы как можно больше использовать инструменты чистой операционной системы Linux, но меньше использовать специальные инструменты RTLinux. ОС Linux делает упор на динамическое выделение ресурсов и инициализацию системы в то же самое время, когда подсистема RTLinux осуществляет только планиро­вание задач реального времени и обработку прерываний. С целью простоты запуска, сохранения модульности и расширяемости системы процессы ре­ального времени имеют тип загружаемых модулей.
VxWorks [3]
VxWorks создана компанией Wind River Systems (Alameda, CA, USA). Изначально она применялась в космической программе, а конкретно – на марсоходе «Mars PathFinder». ОС работает на базе клиент-серверной архи­тектуры, хотя использует и подходы технологии микроядра. В основном микроядерные алгоритмы работают на нижнем уровне для обработки, пла­нирования и синхронизации задач ОС. Также при помощи отдельных про­цессов микроядра выполняется управление памятью и процессами ввода/вывода. За счёт именно такого подхода обеспечивается быстродей­ствие и детерминированность процессов, а также масштабируемость всей системы в целом.
VxWorks применяется для небольших вычислительных систем, рабо­тает во встраиваемых системах с жёстким ограничением памяти, а также используется и в более сложных системах.
К особенностям системы следует отнести:
1. поддержка вытесняющей и циклической многозадачности;
2. высокая скорость обработки прерываний;
3. поддержка симметричного и ассиметричного мультипроцесси-
рования;
4. наличие бинарных, счетных и взаимоисключающих семафоров, с
помощью которых выполняется наследование приоритетов;
5. поддержка частных и глобальных очередей сообщений;
6. неограниченное количество запускаемых задач;
7. детерменированное время переключение контекста.
VxWorks поддерживает не только основанные на POSIX, но и соб-
ственные механизмы вытесняющего и циклического планирования. При этом собственные механизмы планирования основаны на некотором
3.2. Специализированные ОС РВ
29
системном базисе, а алгоритмы POSIX – на базисе, который называется «процесс-за-процессом».
На рис. 7 представлена архитектура ОСРВ VxWorks.
Рис. 7. Архитектура ОСРВ VxWorks
Мы можем перечислить основные характеристики ядра системы
VxWorks:
1. предполагается выполнение неограниченного количества выполня-
емых задач;
2. система поддерживает использование 256 уровней приоритетов
задач;
3. система поддерживает политику вытеснения по приоритетам;
4. система реализует политику кругового планирования задач;
5. система имеет наличие средств коммуникаций между задачами,
среди которых есть стандартные и нестандартные инструменты, такие как семафоры, сигналы, очереди сообщений и сокеты;
6. при наличии графического интерфейса система позволяет исполь-
зовать особые механизмы защиты памяти (при этом, первоначально задачи исполняются в одном адресном пространстве, но задача может по своему желанию создать отдельное адресное пространство).
3.2. Специализированные ОС РВ
ChibiOS/RT [4]
Многозадачная ОС РВ, используемая во встроенных системах реаль­ного времени, в которых основным требованием для выполняемых прило­жений является эффективность и компактность программного кода. ChibiOS/RT характеризуется высокой мобильностью, маленьким объёмом и эффективным переключением между задачами.
3. Классификация ОС РВ
30
На рис. 8 представлена схема взаимодействия базовых служб ядра ОС
РВ ChibiOS/RT.
Данная ОС РВ предназначена для следующих целевых платформ:
ARM7, ARM9, Cortex-M0, -M0+, -M3, -M4, -M7, PPC e200zX, STM8, MSP430, AVR, x86, PIC32.
Рис. 8. Схема взаимодействия базовых служб ядра ChibiOS/RT
Основные характеристики:
1. эффективность и портативность;
2. статичная архитектура;
3. динамические расширения;
4. богатый набор примитивов: потоки, виртуальные таймеры, сема-
форы, мьютексы, условные переменные, очереди сообщений, флаги событий;
5. поддержка алгоритма приоритетного наследования мьютексов;
6. поддержка различных архитектур.
Contiki [5]
Представляет собой кроссплатформенную ОС для сетевых систем с
ограниченным объемом памяти, которая ориентирована на маломощные беспроводные устройства Интернета вещей. ОС была разработана в 2003 г. компанией Texas Instruments. Имеет открытый исходный код и приобрела популярность благодаря встроенному стеку TCP/IP и облегченному упре­ждающему планированию, основанному на ядре, управляемом событиями, что является очень важной функцией для Интернета вещей. Разделение на ядро и загруженные программы ОС РВ Contiki представлено на рис. 9.
Преимущества ОС Contiki связаны с поддержкой протоколов IPv6 и LoWPAN, гибкостью и портативностью. Данная ОС состоит из ядра, набора библиотек и планировщика.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]