Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Часть I
Покупка
Основная коллекция
Издательство:
Южный федеральный университет
Год издания: 2019
Кол-во страниц: 139
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-9275-3367-1
Артикул: 736678.01.99
Данное учебное пособие начинает серию пособий для студентов дневной и заочной форм обучения, обучающихся по направлениям 09.03.01. 09.04.01 - Информатика и вычислительная техника. Также может быть полезно студентам и магистрантам, обучающимся по смежным специальностям. Пособие представляет собой введение в операционные системы реального времени. Разработано на кафедре вычислительной техники ИКТИБ ЮФУ.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- ВО - Магистратура
- 09.04.01: Информатика и вычислительная техника
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования «ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Инженерно-технологическая академия Д. А. БЕСПАЛОВ С. М. ГУШАНСКИЙ Н. М. КОРОБЕЙНИКОВА ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ И ТЕХНОЛОГИИ РАЗРАБОТКИ КРОССПЛАТФОРМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЧАСТЬ 1 Учебное пособие Ростов-на-Дону – Таганрог Издательство Южного федерального университета 2019
УДК 004.451(075.8) ББК 32.973.26-018.1я73 Б534 Печатается по решению кафедры вычислительной техники Института компьютерных технологий и информационной безопасности Южного федерального университета (протокол № 11 от 27 марта 2019 г.) Рецензенты: профессор кафедры высшей математики Инженерно-технологической академии Южного федерального университета, доктор технических наук, профессор Г. В. Куповых профессор кафедры естествознания и безопасности жизнедеятельности Таганрогского института им. А. П. Чехова (филиал) ФГБОУ ВО «РГЭУ (РИНХ)», доктор технических наук, профессор В. И. Божич Беспалов, Д. А. Б534 Операционные системы реального времени и технологии разра ботки кроссплатформенного программного обеспечения. Часть 1 : учебное пособие / Д. А. Беспалов, С. М. Гушанский, Н. М. Коробейникова ; Южный федеральный университет. – Ростов-на-Дону ; Таганрог : Издательство Южного федерального университета, 2019. – 139 с. ISBN 978-5-9275-3366-4 Часть 1. – 139 с. ISBN 978-5-9275-3367-1 (Ч. 1) Данное учебное пособие начинает серию пособий для студентов дневной и заочной форм обучения, обучающихся по направлениям 09.03.01, 09.04.01 – Информатика и вычислительная техника. Также может быть полезно студентам и магистрантам, обучающимся по смежным специальностям. Пособие представляет собой введение в операционные системы реального времени. Разработано на кафедре вычислительной техники ИКТИБ ЮФУ. УДК 004.451(075.8) ББК 32.973.26-018.1я73 ISBN 978-5-9275-3366-4 ISBN 978-5-9275-3367-1 (Ч. 1) Южный федеральный университет, 2019 Беспалов Д. А., Гушанский С. М., Коробейникова Н. М., 2019 Оформление. Макет. Издательство Южного федерального университета, 2019
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ …………………………………………………………. 5 1. ОСОБЕННОСТИ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ (ОС РВ) …………………………………………………. 6 1.1. Определение операционных систем реального времени …... 6 1.2. Основные области применения операционных систем реального времени …………………………………………………... 10 1.3. Строение операционных систем реального времени ………. 11 1.4. Требования к оборудованию для ОС РВ ……………………. 12 2. ОСНОВНЫЕ ПОЛОЖЕНИЯ ……………………………………. 17 2.1. Основные определения ………………………………………. 17 2.2. Типы взаимодействия процессов ……………………………. 29 2.3. Состояния процесса ………………………………………….. 31 2.4. Стандарты на операционные системы реального времени … 35 2.5. Основные требования к операционным системам реального времени ……………………………………………………………. 39 2.6. Параметры и характеристики операционной системы реального времени ………………………………………………………. 41 2.7. Особенности программирования операционных систем реального времени …………………………………………………... 43 3. АРХИТЕКТУРА ОС РВ ………………………………………….. 48 3.1. Ядро ОС РВ …………………………………………………… 48 3.2. Архитектура ОС РВ …………………………………………... 50 3.3. Механизмы реального времени ……………………………... 63 4. УПРАВЛЕНИЕ ЗАДАЧАМИ ……………………………………. 65 4.1. Уровни планирования ………………………………………... 65 4.2. Алгоритмы планирования …………………………………… 71 4.3. Особенности управления процессами в операционных системах реального времени ………………………………………... 77 4.4. Переключение контекста …………………………………….. 83 5. СИНХРОНИЗАЦИЯ И ВЗАИМОДЕЙСТВИЕ ПРОЦЕССОВ … 84
Оглавление 4 5.1. Проблемы синхронизации и взаимодействия процессов между собой …………………………………………………………….. 84 5.2. Средства межпроцессного взаимодействия ………………… 88 5.3. Современные механизмы синхронизации потоков ………… 90 5.4. Мониторы …………………………………………………….. 94 5.5. Обмен сообщениями …………………………………………. 96 5.6. Мьютексы. Система событий ………………………………... 101 5.7. Объекты синхронизации POSIX …………………………….. 102 5.8. Модели синхронизации POSIX ……………………………… 104 6. УПРАВЛЕНИЕ ПАМЯТЬЮ …………………………………….. 112 6.1. Функции управления памятью ………………………………. 112 6.2. Типы адресов памяти ………………………………………… 113 6.3. Виртуальная память и подкачка данных ……………………. 118 6.4. Особенности управления памятью в операционных системах реального времени …………………………………………… 120 6.5. Устройство управления памятью (Memory Management Unit, MMU) ………………………………………………………………. 124 7. ОТКАЗОУСТОЙЧИВОСТЬ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ ……………………………………………… 126 7.1. Понятие отказоустойчивости системы ……………………… 126 7.2. Основные причины сбоев вычислительной системы ………. 127 7.3. Элементы отказоустойчивости системы ……………………. 128 7.4. Способы обеспечения отказоустойчивости системы ………. 130 7.5. Построение систем с рангом отказоустойчивости …………. 133 ЗАКЛЮЧЕНИЕ ……………………………………………………... 136 СПИСОК ЛИТЕРАТУРЫ …………………………………………... 137
ВВЕДЕНИЕ Настоящее пособие представляет собой введение в операционные системы реального времени (ОС РВ). Описываются назначение, сферы применения, главные особенности и принципы внутреннего устройства. Рассматриваются основные возникающие задачи и методы их разрешения. Приводятся несколько стандартов на операционные системы реального времени. Рассмотрены вопросы по особенности управления процессами в операционных системах реального времени, типовые модели синхронизации и взаимодействия процессов, особенности управления памятью, а также отказоустойчивость операционных систем реального времени. В первом разделе будет рассмотрено определение, основные области применения, строение операционных систем реального времени и требования к оборудованию. Во втором разделе будут рассмотрены основные определения про граммного обеспечения операционных систем реального времени, понятия процессов и потоков, типы взаимодействия процессов, состояние процесса, стандарты операционных систем реального времени, их параметры и характеристики, а также особенности программирования для ОС РВ. В третьем разделе рассматриваются обобщенная архитектура ОС РВ, особенности устройства ядра ОС РВ, строение систем реального времени и работа их механизмов. В пятом разделе будут рассмотрены управление задачами, алго ритмы и уровни планирования, особенности управления процессами и переключение контекста задач операционных систем реального времени. Шестой раздел посвящен управлению памятью. В нем рассматрива ются функции управления памятью, типы адресов, виртуальная память и подкачка данных, особенности управления памятью в ОС РВ, устройство управления памятью (MMU). В седьмом разделе рассматриваются понятие отказоустойчивости вычислительной системы, основные причины сбоев, элементы отказоустойчивости и способы обеспечения.
1.1. Определение операционных систем реального времени 6 1. ОСОБЕННОСТИ ОПЕРАЦИОННЫХ СИСТЕМ РЕАЛЬНОГО ВРЕМЕНИ (ОС РВ) 1.1. Определение операционных систем реального времени В настоящее время существует несколько определений систем ре ального времени, из которых можно сформировать универсальное описание, полностью характеризующее предмет исследования. Под операционной системой реального времени будем понимать достаточно широкий набор программных инструментов прикладного и системного уровня, обеспечивающих работу других программ и библиотек, управляющих операциями ввода-вывода, принимающих, обрабатывающих и хранящих данные в различных форматах, взаимодействующих с пользователями различными способами, а главное, делающих это в таком масштабе времени, который удовлетворяет требованиям потребителей. В этом ключе удовлетворение требований соблюдения времени ре акции системы на различные события является ключевым. Именно этой цели служит каждая операционная система реального времени, вне зависимости от ее масштаба. Минимальный вариант операционной системы реального времени составляет ядро, загрузчик, супервизор и монитор процессов, планировщик и множество системных программ. Сложность и возможности системы растут параллельно. Более сложная система может реагировать на более сложные события и выполнять более сложные алгоритмы. Исходя из этого, операционные системы в общем и операционные системы реального времени имеют различные масштабы. Здесь имеется в виду, что существуют как ОС для совсем маленьких, встраиваемых устройств, так и ОС для вычислительных кластеров или сложных систем управления. Все они имеют общие черты, относящие их к системам реального времени. Само по себе словосочетание “реальное время” может упоминаться в различном контексте. Реальное время разное для каждой “реальности”. Человеческий глаз воспринимает 30 кадров в секунду, значит, он не будет видеть разницы при обновлении картинки чаще, чем эти 30–40 раз. Система управления поливом может срабатывать раз в полчаса, а система контроля
1.1. Определение операционных систем реального времени 7 температуры в теплице может это делать раз в минуту. Электронная система может требовать обновление в миллионы раз в секунду, а крупномасштабный объект, например баржа или сухогруз, – наоборот меняет свое положение в минуты. То есть все зависит от ситуации – самая мощная в вычислительном плане система может работать медленно для одних условий и работать со сверхсветовой скоростью – в других. Следовательно, придется пользоваться некоторыми обобщениями или постулатами при объяснении структуры, возможностей и особенностей использования операционных систем реального времени. Первое. Операционная система может относиться к классу (или иметь явные черты) операционной системы реального времени, если ее эффективность и конечная оценка зависит не только от заложенных алгоритмов, корректности выполняемых вычислений и т.п., но и от того, успевают ли выполняться все необходимые алгоритмы в установленных интервалах времени. При этом желательно, чтобы выполнение алгоритмов не просто укладывалось в установленный временной интервал, но и было более или менее равномерно распределено внутри интервала и, желательно, находилось в минимальных окрестностях одних и тех же временных меток. Второе. Операционная система имеет черты и может быть названа операционной системой реального времени, если ее быстродействие сопоставимо скорости течения тех процессов, с которыми она работает, т.е. ОС не только успевает за указанный интервал подготовить корректный результат расчетов, но и делает это “ритмично”. Из этих постулатов также можно сделать несколько очень важных выводов. Первое. Фактически все современные системы управления и про мышленной автоматизации в той или иной степени являются системами реального времени. Второе. Принадлежность ОС к классу “реального времени” опреде ляется не вычислительными, а временными параметрами. Все это определяется в техническом задании на разработку или сборку операционной системы исходя из особенностей решаемой задачи. На уровне интуиции понятно, что быстродействие системы реального времени должно увеличиваться вместе с ростом скорости протекания процес
1. Особенности операционных систем реального времени (ОС РВ) 8 сов на объекте контроля и управления. Однако если объект работает “неспешно”, то и контролирующая его операционная система тоже может быть “небыстрой” и размещаться не на современной суперЭВМ, а на вполне бюджетной встраиваемой системе, даже на базе не микропроцессора, а микроконтроллера. Также следует отметить, что между временным масштабом объекта управления и операционной системой соотношения не линейные, а степенные. Здесь имеется в виду теорема Котельникова или критерий Найквеста, которые гласят, что, для полноценного представления всех особенностей анализируемого сигнала или потока данных в цифровой форме, необходимо использовать сканирующие сигналы или частоты выборки, как минимум в два раза превышающие максимальную частоту во входном канале этих данных и сигналов. Таким образом, если показания датчика на входе устройства ввода-вывода ЭВМ с ОС РВ может меняться максимум 1000 раз в секунду, то его необходимо “оцифровывать” и обрабатывать минимум с частотой 2000 раз в секунду. Этот принцип полноценно работает в современной измерительной технике, где для цифровых осциллографов и логических анализаторов заявлено, что они работают на частотах 4х или даже 8х относительно максимальной частоты входного сигнала. Это называется транзиент-анализ, т.е. обработку очередного такта входного сигнала необходимо не только закончить до наступления следующего такта, но еще и сформировать ответ, сигналы управления, обновить (при необходимости) данные на устройствах ввода-вывода, сформировать все необходимые флаги, записать данные, передать пакеты по сети и т.п. Подобные системы называют системами “квазиреального” времени. И это логично, так как такие ОС вроде бы удовлетворяют требованиям технического задания, но не относятся к двум каноническим классам: системам “мягкого” или “жесткого” реального времени. Системой “жесткого” реального времени принято называть такие си стемы, которые полностью и в любых штатных ситуациях соблюдают требования своевременной реакции на события. В случае, когда реакция на событие запаздывает, наблюдается отказ системы: полный или частичный. Естественно, что последствия подобного отказа могут быть раз ными. Если мы говорим о производстве, то может последовать остановка
1.1. Определение операционных систем реального времени 9 конвейера или ухудшение качества продукции, а если речь идет о системе управления атомной электростанцией – последствия могут быть катастрофическими. В общем случае можно говорить о том, что система “жесткого” вре мени имеет время реакции на событие гораздо меньше, чем сам по себе регулярный интервал между событиями. Это достаточно субъективная оценка, но она работает в большинстве случаях. За всю историю развития вычислительной техники такие интервалы также переоценивались множество раз: сначала величина интервала в 100 миллисекунд была нормальной, теперь нормальными единицами измерения являются микросекунды или даже наносекунды. Системой “мягкого” времени можно называть такие системы, кото рые не попадают в категорию “жестких”, но достаточно производительны, чтобы эффективно применяться в других условиях с меньшими ограничениями. Тут следует отметить, что критериев оценки “мягких” систем больше. Это в первую очередь статистические и вероятностные величины типа средней ошибки ответа на событие, усредненного интервала реакции, диапазона роста или падения производительности относительно количества наблюдаемых событий и т.п. Это свойство “мягких” систем особенно видно тогда, когда в качестве одного из звеньев цепи выступает другая система, подключенная по сети или тем более человек. Сетевые соединения характеризуются непрогнозируемыми задержками обработки данных, а “человеческий” фактор вообще может свести к нулю эффективность хоть “мягкой”, хоть “жесткой” системы. Резюмируя вышесказанное, можно отметить, что система “жест кого” реального времени никогда не опоздает с реакцией на событие, а система “мягкого” реального времени не должна это делать, но может. Тогда идеальной операционной системой реального времени мы бу дет называть именно систему “жесткого” реального времени. Это сужает диапазон суждений о сущности операционных систем и об их свойствах, и ограничивает набор применяемых инструментальных средств как программных, так и аппаратных. Дело в том, что большинство программных систем и комплексов ориентировано максимум на “мягкое” реальное время. Здесь имеется в виду следующее.