Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Часть 4
Покупка
Основная коллекция
Издательство:
Южный федеральный университет
Авторы:
Беспалов Дмитрий Анатольевич, Гушанский Сергей Михайлович, Коробейникова Наталия Михайловна, Буглов Владислав Евгеньевич
Год издания: 2023
Кол-во страниц: 115
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9275-4523-0
Артикул: 830447.01.99
Данное учебное пособие продолжает серию пособий для студентов дневной и заочной форм обучения, обучающихся по направлениям 09.03.01, 09.04.01 - Информатика и вычислительная техника. Также может быть полезно
студентам и магистрантам, обучающимся по смежным специальностям. В данном учебном пособии приводятся принципы построения современных и наиболее популярных операционных систем реального времени, представлена их классификация и описаны стандарты, на базе которых происходит разработка ОС РВ. Учебное пособие разработано на кафедре вычислительной техник ИКТИБ ЮФУ.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования «ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Инженерно-технологическая академия Д. А. БЕСПАЛОВ С. М. ГУШАНСКИЙ Н. М. КОРОБЕЙНИКОВА В. Е. БУГЛОВ ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ И ТЕХНОЛОГИИ РАЗРАБОТКИ КРОССПЛАТФОРМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ Учебное пособие в четырех частях Часть IV Ростов-на-Дону – Таганрог Издательство Южного федерального университета 2023
УДК 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
ВВЕДЕНИЕ В мире современных технологий много интересных и важных направ лений, одно из них – системы реального времени. Проще говоря, большинство современных автоматизированных систем, применяющихся во всех жизненно важных направлениях науки и техники, являются системами реального времени. Их роль неустанно возрастает, а разработка новых технологий в этой сфере является уже насущной необходимостью. Такие системы имеют общепринятое название ОС РВ, т.е. Операцион ная система реального времени. Это особый вид ОС, которая предоставляет необходимый и достаточный набор функций для проектирования и разработки систем реального времени. Основная задача подобных систем состоит в соблюдении особых требований к своевременной обработке данных с соблюдением временных интервалов и длительности процессов. Эффективные ОС подобного типа должны помогать в достижении де терминированности поведения программного обеспечения при различных сложный внешних условиях. Иными словами, операционная система и системное программное обеспечение должны обеспечивать предсказуемое поведение при различных сценариях выполнения задач. В данном учебном пособии представлены особенности, характеризую щие ОС РВ, приведены стандарты, используемые в области систем реального времени, а также приведена классификация ОС РВ.
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, однако функциональные возможности, применяемые к системам реального времени, первого намного шире. Понятию «процесс» соответствует понятие «задача», выполняемая параллельно с другими задачами на выделенном виртуальном процессоре. Задачи могут связываться с отдельными прерываниями и исключениями, а также функционировать в виде их обработчика. Сложность