Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

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

Покупка
Основная коллекция
Артикул: 736678.01.99
Доступ онлайн
181 ₽
В корзину
Данное учебное пособие начинает серию пособий для студентов дневной и заочной форм обучения, обучающихся по направлениям 09.03.01. 09.04.01 - Информатика и вычислительная техника. Также может быть полезно студентам и магистрантам, обучающимся по смежным специальностям. Пособие представляет собой введение в операционные системы реального времени. Разработано на кафедре вычислительной техники ИКТИБ ЮФУ.
Беспалов, Д. А. Операционные системы реального времени и технологии разработки кроссплатформенного программного обеспечения. Часть 1 : учебное пособие / Д. А. Беспалов, С. М. Гушанский, Н. М. Коробейникова ; Южный федеральный университет. - Ростов-на-Дону ; Таганрог : Издательство Южного федерального университета, 2019. - 139 с. - ISBN 978-5-9275-3367-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1088203 (дата обращения: 19.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ 

РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное автономное 

образовательное учреждение высшего образования

«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Инженерно-технологическая академия

Д. А. БЕСПАЛОВ

С. М. ГУШАНСКИЙ

Н. М. КОРОБЕЙНИКОВА

ОПЕРАЦИОННЫЕ СИСТЕМЫ РЕАЛЬНОГО 
ВРЕМЕНИ И ТЕХНОЛОГИИ РАЗРАБОТКИ 

КРОССПЛАТФОРМЕННОГО ПРОГРАММНОГО

ОБЕСПЕЧЕНИЯ

ЧАСТЬ 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 миллисекунд была нормальной, 
теперь нормальными единицами измерения являются микросекунды или 
даже наносекунды.

Системой “мягкого” времени можно называть такие системы, кото
рые не попадают в категорию “жестких”, но достаточно производительны, 
чтобы эффективно применяться в других условиях с меньшими ограничениями. Тут следует отметить, что критериев оценки “мягких” систем 
больше. Это в первую очередь статистические и вероятностные величины 
типа средней ошибки ответа на событие, усредненного интервала реакции, 
диапазона роста или падения производительности относительно количества наблюдаемых событий и т.п.

Это свойство “мягких” систем особенно видно тогда, когда в качестве 

одного из звеньев цепи выступает другая система, подключенная по сети или 
тем более человек. Сетевые соединения характеризуются непрогнозируемыми задержками обработки данных, а “человеческий” фактор вообще может свести к нулю эффективность хоть “мягкой”, хоть “жесткой” системы.

Резюмируя вышесказанное, можно отметить, что система “жест
кого” реального времени никогда не опоздает с реакцией на событие, а система “мягкого” реального времени не должна это делать, но может.

Тогда идеальной операционной системой реального времени мы бу
дет называть именно систему “жесткого” реального времени. 

Это сужает диапазон суждений о сущности операционных систем и 

об их свойствах, и ограничивает набор применяемых инструментальных 
средств как программных, так и аппаратных.

Дело в том, что большинство программных систем и комплексов 

ориентировано максимум на “мягкое” реальное время. Здесь имеется в 
виду следующее.

1. Особенности операционных систем реального времени (ОС РВ)

10

Первое. Есть некоторое гарантированное время реакции на внешнее 

событие. Примером может служить функция обработки внешнего прерывания на уровне аппаратуры. Для RISC-систем (микроконтроллеров) это 
время гарантировано занимает определенное количество тактов, а вот в 
CISC-системах (например, в обычных ЭВМ), этот интервал совершенно не 
имеет гарантированной величины.

Второе. Система управления последовательностью выполнения 

процессов и программ (так называемый планировщик задач) никогда не 
должна позволять более приоритетным задачам перманентно вытеснять из 
очереди выполнения менее приоритетные. Для этого применяются различные механизмы типа ротации приоритетов или случайные выборки.

Третье. Требования к реакции на различные внешние события (апри
ори считаемые самыми важными) должны быть завышенными и иметь четко 
определенные интервалы.

1.2. Основные области применения операционных

систем реального времени

Самые первые версии операционных систем реального времени были 

разработаны по заказу оборонной и космической отраслей. После этого, 
ОС РВ пришли в промышленность. Сейчас “реальное время” можно увидеть 
практически во всех областях науки и техники и даже “в быту”. Можно привести следующий список областей применения систем “реального времени”.

1. Военная и космическая области: в первую очередь встраиваемые 

системы, носимые устройства, оборудование, далее системы измерения, 
контроля параметров, радарные комплексы и сканеры, датчиковые системы и сети, видеоподсистемы регистрации и наблюдения, симуляторы 
полета, имитаторы, системы позиционирования и навигации, подсистемы 
навидения, “умное” оружие и т.п.

2. Промышленность: в первую очередь это автоматизированные си
стемы контроля и управления производством – системы управления технологическим процессом, системы сопровождения научных исследований и 
испытаний, симуляторы, системы управления подвижными объектами, линиями производства, системами сбора данных, управления данными, коммуникационным оборудованием, телефонией и т.п.

1.3. Строение операционных систем реального времени

11

3. Товары широкого потребления: в первую очередь встраиваемые 

системы и носимое оборудование – мобильная связь и смартфоны, “умные” 
часы, навигаторы, игровые приставки, декодеры и системы защиты связи, 
цифровое телевидение, офисное оборудование и т.п.

Список достаточно большой. ОС РВ имеет множество представле
ний и много масштабов. В максимальном варианте это огромные комплексы программно-аппаратных средств, а в минимальном варианте –
всего несколько килобайт кода для микроконтроллера, площадью несколько квадратных миллиметров.

1.3. Строение операционных систем реального времени

Разные виды и поколения ОС РВ имеют как общие черты, так и 

различия.

Исполнительная часть ОС РВ включает в себя разные наборы си
стемного и прикладного программного обеспечения, которые адаптируются, например, к специфической платформе размещения (ПО для микропроцессоров, исполнительных устройств, в том числе написанное на языках ассемблера или языках описания аппаратуры). Но даже в этом случае, 
ОС собирается на ЭВМ общего назначения, а затем компонуется с нужным 
ядром и размещается на целевом оборудовании (прошивается). То же самое 
касается и разработки прикладного программного обеспечения. Разработка 
ведется в инструментальной среде, иногда общей для различных ОС, а исполнение – в своих собственных целевых сервисах.

В любом случае, современные операционные системы реального 

времени в общем виде можно разделить на следующие слои.

1. Ядро – элемент ОС, содержащий минимум исполняемого кода, 

необходимый для работы: управление задачами и их распределение по исполнительным устройствам, синхронизацию задач, управление очередями 
задач, управление устройствами ввода-вывода. Размер ядра часто ограничивается.

2. Система управления – элемент ОС, содержащий ядро и ряд до
полнительных сервисов, которые могут расширять его. Часто добавляются 

Доступ онлайн
181 ₽
В корзину