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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
1
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
Инженерно-технологическая академия
Д. А. БЕСПАЛОВ
С. М. ГУШАНСКИЙ
Н. М. КОРОБЕЙНИКОВА
В. Е. БУГЛОВ
ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО
ВРЕМЕНИ И ТЕХНОЛОГИИ РАЗРАБОТКИ
КРОССПЛАТФОРМЕННОГО
ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Учебное пособие
в четырех частях
Часть IV
Ростов-на-Дону – Таганрог
Издательство Южного федерального университета
2023
2
УДК 004.451(075.8) ББК 32.973я73
О-609
Печатается по решению кафедры вычислительной техники
Института компьютерных технологий и информационной безопасности
Южного федерального университета
(протокол № 3 от 28 сентября 2023 г.)
Рецензенты:
профессор кафедры высшей математики Инженерно-технологической
академии Южного федерального университета,
доктор технических наук, профессор Г. В. Куповых
профессор кафедры естествознания и безопасности жизнедеятельности
Таганрогского института им. А. П. Чехова (филиал)
ФГБОУ ВО «РГЭУ (РИНХ)», доктор технических наук, профессор
В. И. Божич
Беспалов, Д. А.
О-609 Операционные системы реального времени и технологии разра-
ботки кроссплатформенного программного обеспечения : учебное по­собие : в 4 ч. / Д. А. Беспалов, С. М. Гушанский, Н. М. Коробейникова, В. Е. Буглов ; Южный федеральный университет. – Ростов-на-Дону ; Таганрог : Издательство Южного федерального университета, 2023.
ISBN 978-5-9275-3366-4 Часть 4. – 115с. ISBN 978-5-9275-4523-0 (Ч. 4)
Данное учебное пособие продолжает серию пособий для студентов днев-
ной и заочной форм обучения, обучающихся по направлениям 09.03.01,
09.04.01 – Информатика и вычислительная техника. Также может быть полезно студентам и магистрантам, обучающимся по смежным специальностям. В данном учебном пособии приводятся принципы построения современных и наиболее по­пулярных операционных систем реального времени, представлена их классифика­ция и описаны стандарты, на базе которых происходит разработка ОС РВ.
Учебное пособие разработано на кафедре вычислительной техник
ИКТИБ ЮФУ.
УДК 004.451(075.8)
ББК 32.973я73
ISBN 978-5-9275-4523-0 (Ч. 4) ISBN 978-5-9275-3366-4
Ⓒ Южный федеральный университет, 2023 Ⓒ Беспалов Д. А., Коробейникова Н. М.,
Гушанский С. М., Буглов В. Е., 2023
Ⓒ Оформление. Макет. Издательство
Южного федерального университета, 2023
1. Особенности ОС РВ
3
СОДЕРЖАНИЕ
ВВЕДЕНИЕ ………………………………………………………………
4
1. ОСОБЕННОСТИ ОС РВ …………………………………………….
5
2. СТАНДАРТЫ ОС РВ …………………………………………………
16
2.1. POSIX ………………………………………………………………
16
2.2. DO-178B ……………………………………………………………
16
2.3. OSEK/VDX …………………………………………………………
17
2.4. ARINC 653 ………………………………………………………….
18
2.5. ГОСТ Р МЭК 61508-4-2012 ………………………………………..
19
2.6. SCEPTRE …………………………………………………………...
19
2.7. LynxOS-178 ………………………………………………………...
20
3. КЛАССИФИКАЦИЯ ОС РВ …………………………………………
22
3.1. Классические ОС РВ ………………………………………………
22
3.2. Специализированные ОС РВ ……………………………………...
29
3.3. Отечественные ОС РВ ……………………………………………..
59
3.4. Мобильные ОС РВ …………………………………………………
70
3.5. Системы на кристалле ……………………………………………..
78
3.6. ОС РВ для микроконтроллеров …………………………………...
84
3.7. Обеспечение отказоустойчивости систем реального времени ….
89
3.8. Настраиваемость операционных систем реального времени …...
92
3.9. Типы архитектур операционных систем реального времени ……
96
ЗАКЛЮЧЕНИЕ ………………………………………………………….
99
СПИСОК ЛИТЕРАТУРЫ ………………………………………………
100
ПРИЛОЖЕНИЯ ………………………………………………………….
104
Приложение А. Характеристики управления памятью ………………
104
Приложение Б. Характеристики управления прерываниями, син- хронизацией и временем ……………………………………………….
105
Приложение В. Характеристики многозадачной обработки ………...
107
Приложение Г. Перечень рассматриваемых в пособии ЛС РВ ……...
112
4
ВВЕДЕНИЕ
В мире современных технологий много интересных и важных направ-
лений, одно из них – системы реального времени. Проще говоря, большин­ство современных автоматизированных систем, применяющихся во всех жизненно важных направлениях науки и техники, являются системами ре­ального времени. Их роль неустанно возрастает, а разработка новых техно­логий в этой сфере является уже насущной необходимостью.
Такие системы имеют общепринятое название ОС РВ, т.е. Операцион-
ная система реального времени. Это особый вид ОС, которая предоставляет необходимый и достаточный набор функций для проектирования и разра­ботки систем реального времени. Основная задача подобных систем со­стоит в соблюдении особых требований к своевременной обработке данных с соблюдением временных интервалов и длительности процессов.
Эффективные ОС подобного типа должны помогать в достижении де­терминированности поведения программного обеспечения при различных сложный внешних условиях.
Иными словами, операционная система и системное программное обеспечение должны обеспечивать предсказуемое поведение при различ­ных сценариях выполнения задач.
В данном учебном пособии представлены особенности, характеризую­щие ОС РВ, приведены стандарты, используемые в области систем реаль­ного времени, а также приведена классификация ОС РВ.
1. Особенности ОС РВ
5
1. ОСОБЕННОСТИ ОС РВ
Операционная система реального времени (далее ОС РВ) – это тип спе-
циализированной операционной системы, которая предоставляет необхо­димый и достаточный набор функций для проектирования и разработки си­стем реального времени.
Разделение систем РВ происходит по принципу соблюдения «жёст­кого» или «мягкого» времени. Если мы пытаемся соблюдать условия жёст­кого реального времени, то мы стремимся обеспечить реакцию на события в заданное время. Иногда это в реальных условиях приводит к невозможно­сти выполнения поставленной задачи. С другой стороны, под системами мягкого реального времени мы понимаем уже все системы, которые не по­падают под предыдущее определение. В том случае, если системы мягкого реального времени не справляются со своевременным решением задачи, то в такой ситуации полная остановка функционирования системы не проис­ходит. В системах реального времени применяется детерминированное время решения вычислительной задачи.
Ниже в табл. 1 представлено сравнение ОС РВ и ОС общего назначения.
Таблица 1
Сравнение ОС РВ и стандартных ОС
ОС РВ
ОС общего назначения
Назначение системы
Система должна в первую очередь успеть среагиро­вать на сигналы событий, которые возникли в аппа­ратном обеспечении
Система должна стараться рас­пределить имеющиеся вычис­лительные ресурсы между по­требителями: пользовательским ПО и системными задачами
На что система больше всего ориентирована
Система ориентирована обработку событий, посту­пающих извне
Система больше ориентиро­вана на обработку действий пользователя
Как система позициониру­ется
Система воспринимается как инструмент для созда­ния аппаратно-программ­ных комплексов, работаю­щих в условиях реального или псевдо-реального времени
Система больше воспринима­ется пользователем как набор приложений, которые готовы к использованию в любое время
Кому предна­значается си­стема
В большей степени такое системы предназначаются для квалифицированных пользователей
Система больше воспринима­ется как инструмент пользова­телей со средней квалифика­цией
1. Особенности ОС РВ
6
Далее представлены требования, которым должна удовлетворять
ОС РВ:
1. поддержка многозадачности;
2. использование приоритетов для потоков;
3. наличие механизмов синхронизации;
4. поддержка наследования приоритетов;
5. известное и предсказуемое поведение.
Многие современные ОС РВ реализованы на основе микроядра. Такое микроядро обеспечивает планирование и диспетчеризацию задач. Микро­ядро обладает представлением об абстракции процесса. Остальные концеп­туальные абстракции ОС находятся за пределами ядра и могут быть вы­званы по запросу. На рис. 1 демонстрируется архитектура микроядра.
Рис. 1. Типичная архитектура микроядра
Среди концептуальных абстракций и понятий ОС можно выделить:
1. понятие процесса ОС;
2. понятие потока ОС;
3. понятие задачи ОС;
4. понятие планирования процесса выполнения задач;
5. понятие приоритета задачи;
6. оперативная и постоянная память системы;
7. система программных и аппаратных прерываний (а также внешних
и внутренних источников прерываний);
8. понятие времени, реального времени, системы часов и таймеров.
В системах РВ каждое пользовательское или системное приложение рассматривается как некоторый процесс, который выполняется при по­мощи задач или потоков. В общем случае, такие процессы категорируются относительно понятий жесткого реального времени, мягкого реального вре­мени и не реального времени.
1. Особенности ОС РВ
7
Вне зависимости от типа «времени», в ОС применяются алгоритмы
планирования различного типа. Если мы говорим о системах, ближе к «жесткому» или «реальному» времени, то алгоритмы планирования имеют статистический характер и принимают во внимание приоритет процессов. Согласно политике приоритетов, сначала будут выполняться процессы с более высоким приоритетом, а затем с низким.
Главным требованием, предъявляемым для памяти ОС РВ, является то,
что доступ должен быть четко регламентирован и распределен во времени. Основные политики потребления памяти, например, подразумевают запрет вызова страницы для задачи реального времени по запросу. Такой вызов характерен для процессов подкачки данных с диска. Это приводит к тому, что системы с включенным механизмом виртуальной памяти будут блоки­ровать процесс в ОЗУ относительно подкачки данных.
Таким образом, использование подкачки в ОС РВ недопустимо из-за
её непредсказуемости. Для осуществления прерываний в ОС РВ должны быть заложены две процедуры: программа обработки прерывания и поток обработки прерывания.
ОС РВ оснащаются различными службами времени. Принцип работы
заключается в следующем: ОС выполняет контроль за временем и в опре­делённый момент выполняет одно из двух действий – либо запуск задачи и потока, либо их остановку. Для этого применяются аппаратные или про­граммные таймеры-счетчики, либо специализированные микросхемы ре­ального времени.
Многие ОС РВ оперируют понятием «относительного временем». Оно
характеризуется присутствием реперных точек «до» или «после» какого-то фиксированного события. Следовательно, отсчет времени выполняется именно относительно события, а не относительно абсолютной временной шкалы. Синхронизация в ОС РВ выполняется за счет механизма блокиро­вания до момента наступления другого события.
С целью реализации приложения реального времени необходимо ис-
пользовать язык программирования, выбор которого можно осуществить при помощи следующих критериев (в большей степени относящихся к язы­кам программирования, на котором разработана большая часть операцион­ной системы и приложений):
1. Особенности ОС РВ
8
1. обеспечение высокой производительности;
2. доступ к ресурсам оборудования;
3. вызов процедур, написанных на другом языке;
4. переносимость приложения;
5. поддержка объектно-ориентированного подхода.
Рассмотрим эти критерии более подробно.
Обеспечение высокой производительности
Здесь подразумевается то, то язык программирования, на котором напи­сано ядро ОС и системные приложения, должен быть компилируемым.
Типичными представителями компилируемых языков программирова­ния являются Cи, Cи++, а также современные языки типа Rust. Интерпре­тируемые языки в этой связи не должны иметь высокий приоритет исполь­зования в системе, но могут быть использованы в «некритичных» элемен­тах системы. Такие технологии как Python или Perl до сих пор применяются для построения системных утилит, интерфейсов командной строки, пользо­вательских приложений. То же самое относится к языкам программирова­ния с виртуальной машиной, например Java/.NET/JavaScript.
Кроме того, подразумевается использование компилятора, который обладает высокой степенью оптимизации. Оптимизирующий компилятор способен генерировать исполняемый код, скорость исполнения которого будет в несколько раз больше, чем в других случаях, в том числе и за счет оптимизации под тип ОС, тип микропроцессора и его систему команд, ап­паратную поддержку вычислительных алгоритмов и т.п.
Доступ к ресурсам оборудования
Следует из предыдущего пункта и должен обеспечиваться при помощи специализированных языковых конструкций или библиотек языка програм- мирования, на котором написана основная часть системы.
Вызов процедур, написанных на другом языке
Вызов процедур из библиотек, написанных на других языках, является сложным механизмом, расширяющим функционал языка программирова­ния и позволяющим переиспользовать труд других разработчиков и компа­ний по разработке программного обеспечения. Этот подход называется «маршалингом» или расширением языка. Маршалинг также применяется при передаче данных между процессами и/или потоками, имеет некоторые отличия от сериализации и десериализации, так как он особым образом
1. Особенности ОС РВ
9
применяется к удалённым (внешним) объектам, для которых не создается копия самого объекта, а лишь указывается адрес в ОЗУ, по которому должна производиться работа с ним. Маршалинг также является основой для взаимодействия между различными компонентами ОС, но, как процесс, представляет собой сложность для компилируемого кода и имеет дополни­тельные накладные расходы при использовании.
Переносимость приложения
Это вообще отдельная сложная тема для исследования так как мы го­ворим о возможности выполнить компиляцию программы посредством другого компилятора, запущенного на той же платформе, или выполнить компиляцию программы на другой платформе/ операционной системе для «нашей» систем. Здесь также следует помнить понятие кроссплатформен­ности программного обеспечения, понятие кросс-компилятора и переноси­мости программного кода, который мы уже рассматривали в предыдущих частях учебного пособия.
Поддержка объектно-ориентированного подхода
Этот критерий связан с возможностями использования объектно-ори­ентированных языков программирования в разработке системных приложе­ний. В первую очередь, внедрение этого понятия произошло благодаря языку Java. Позднее к этой тенденции «присоединилась» платформа .NET с ее семейством языков благодаря их кроссплатформенному подходу в .NET
Core 3.x, внедрению ядра Linux в ОС Windows при помощи WSL (Windows Subsystem for Linux) различных версий.
Для программирования, осуществляющегося в режиме реального вре­мени, необходимы специальные средства, поддержка которых не обеспечи­вается стандартными языками последовательного программирования. Язык программирования, используемый в режиме реального времени, должен:
1. описывать параллельные процессы;
2. переключать процессы на основе системы приоритетов (с динами-
ческим изменением), подверженных изменениям со стороны прикладных процессов;
3. синхронизировать процессы;
4. обмениваться данными между несвязанными, связанными или
наследуемыми процессами;
1. Особенности ОС РВ
10
5. поддерживать функции, связанные с учетом реального времени, а
также различным временем ожидания;
6. обеспечить прямой доступ к внешним устройствам при помощи
специальных коннекторов и контроллеров (портов);
7. выполнять обработку прерываний и исключений.
Далеко не все языки программирования способны осуществить выпол­нение таких требований. Наиболее распространенными языками, использу­емыми с целью реализации систем реального времени, являются ассемблер, Cи, C++, ADA и др.
Язык Ассемблер
Это один из самых «старых» и «классических» языков программирова­ния. Его отличительной особенностью является то, что мы можем добиться максимально возможной производительности и предсказуемости работы программного обеспечения. Мы имеем полный доступ к оборудованию, ши­нам, регистрам микропроцессора, ОЗУ и ПЗУ. Однако следует помнить, что язык ассемблера сложен в использовании, программный код сильно зависит от платформы и микропроцессора, а также высока сложность разработки приложений, время работы и вероятность допустить ошибку.
Язык ассемблера, как правило, применяется сейчас либо в разработке приложений для встраиваемых устройств, либо для реализации некоторых отдельных фрагментов программного обеспечения, которые должны быть либо максимально «близки» к микропроцессору или аппаратуре, либо должны иметь максимально высокую скорость исполнения. Хотя, если мы говорим о разработке программного обеспечения для микроконтроллеров, там оно может быть на 100 % разработано на языке ассемблера.
Язык ADA
Представляет собой полную среду разработки программ, которая включает текстовый редактор, отладочные механизмы, средства управле­ния библиотеками и пр. Соответствует стандарту ANSI/MIL-STD-1815A. По своей структуре язык ADA схож с языком Pascal, однако функциональ­ные возможности, применяемые к системам реального времени, первого намного шире. Понятию «процесс» соответствует понятие «задача», выпол­няемая параллельно с другими задачами на выделенном виртуальном про­цессоре. Задачи могут связываться с отдельными прерываниями и исклю­чениями, а также функционировать в виде их обработчика. Сложность
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]