
- •2. Ядра и операционные системы реального времени
- •2.1. Задачи, процессы, потоки
- •2.2. Основные свойства задач
- •2.3. Планирование задач
- •2.4. Синхронизация задач
- •2.5. Тестирование
- •2.6. Можно ли обойтись без ОС РВ?
- •3. Обзор некоторых операционных систем реального времени
- •3.1. Linux реального времени
- •3.2. Операционные системы реального времени и Windows
- •3.3. Операционная система QNX
- •3.4. Проект Neutrino
- •4.1. Организация промышленных систем
- •4.2. Аппаратная архитектура
- •4.3. Стандарты шин
- •4.4. Технологии VME и PCI
- •4.5. Мезонинные технологии
- •4.6. Полевые системы
- •4.7. Программное обеспечение промышленных систем
- •4.8. Управление производством
- •Часть 2. ПРОЕКТИРОВАНИЕ СРВ
- •5. UML проектирование систем реального времени
- •5.1. Объектно-ориентированные методы и UML
- •5.2. Метод и нотация
- •5.3. Системы и приложения реального времени
- •6. Обзор нотации UML
- •6.1. Диаграммы UML
- •6.2. Диаграммы прецедентов
- •6.3. Нотация UML для классов и объектов
- •6.4. Диаграммы классов
- •6.5. Диаграммы взаимодействия
- •6.6. Диаграммы состояний
- •6.7. Пакеты
- •6.8. Диаграммы параллельной кооперации
- •6.9. Диаграммы развертывания
- •6.10. Механизмы расширения UML
- •7.1. Среды для параллельной обработки
- •7.2. Поддержка исполнения в мультипрограммной и мультипроцессорной средах
- •7.3. Планирование задач
- •7.4. Вопросы ввода/вывода в операционной системе
- •7.6. Технология World Wide Web
- •7.7. Сервисы распределенных операционных систем
- •7.8. ПО промежуточного слоя
- •7.9. Стандарт CORBA
- •7.10. Другие компонентные технологии
- •7.11. Системы обработки транзакций
- •8. Разбиение на задачи
- •8.1. Вопросы разбиения на параллельные задачи
- •8.2. Категории критериев разбиения на задачи
- •8.3. Критерии выделения задач ввода/вывода
- •8.4. Критерии выделения внутренних задач
- •8.5. Критерии назначения приоритетов задачам
- •8.6. Критерии группировки задач
- •8.7. Пересмотр проекта путем инверсии задач
- •8.8. Разработка архитектуры задач
- •8.9. Коммуникации между задачами и синхронизация
- •8.10. Спецификация поведения задачи
- •9. Проектирование классов
- •9.1. Проектирование классов, скрывающих информацию
- •9.2. Проектирование операций классов
- •9.3. Классы абстрагирования данных
- •9.4. Классы интерфейса устройства
- •9.5. Классы, зависящие от состояния
- •9.6. Классы, скрывающие алгоритмы
- •9.7. Классы интерфейса пользователя
- •9.10. Внутренние программные классы
- •9.11. Применение наследования при проектировании
- •9.12. Примеры наследования
- •9.13. Спецификация интерфейса класса
- •10. Детальное проектирование ПО
- •10.1. Проектирование составных задач
- •10.2. Синхронизация доступа к классам
- •10.4. Логика упорядочения событий
- •11.1. Теория планирования в реальном времени
- •11.2. Развитие теории планирования в реальном времени
- •11.5. Пример анализа производительности с помощью анализа последовательности событий
- •11.6. Пример анализа производительности с применением теории планирования в реальном времени
- •11.8. Пересмотр проекта
- •11.9. Оценка и измерение параметров производительности
- •12. ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
256 |
10.4. Логика упорядочения событий
На этапе детального проектирования ПО заполняется раздел «Логика упорядочения событий» в спецификации поведения задач. Ниже рассказывается, каким образом задача реагирует на входные сообщения или события и, в частности, какая при этом генерируется выходная информация. Логика упорядочения событий описывается неформально на псевдокоде или на естественном языке и иногда до- полняется диаграммой. Например, для управляющей задачи может быть построена диаграмма перехода состояний.
В случае составной задачи с несколькими вложенными объекта- ми входные сообщения принимает вложенный объект-координатор, который затем вызывает операции прочих объектов. Следовательно, он реализует логику упорядочения событий.
10.4.1. Пример логики упорядочения событий для задач отпра-
вителя и получателя. Ниже приводится логика упорядочения собы- тий задачей-отправителем, которая посылает сообщения другим за- дачам. Конкретный вид операции send (сообщение) зависит от того, предоставляет сервис операционная система или используется объ- ект-разъем.
loop
Подготовить сообщение, содержащее имя (тип) и необязательные параметры; Послать (сообщение) получателю;
endloop;
Логика упорядочения событий задачейполучателем такова:
loop
Принять (сообщение) от получателя; Извлечь из сообщения имя и параметры; case сообщение of
тип сообщения 1:
объектА.операциях (необязательные параметры);
. . .
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
257 |
тип сообщения 2:
объектВ.операцияY (необязательные параметры);
. . .
endcase ; endloop;
Если применяется разъем aConnector, то операция отправки со-
общения принимает вид
aConnector.send (сообщение)
а операция приема
aConnector.receive (сообщение)
www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
258 |
11. Анализ производительности проекта параллельной системы
Анализ производительности проекта особенно важен для систем реального времени. Если такая система не справляется со своими за- дачами в течение отведенного интервала, последствия могут быть ка- тастрофическими.
Количественный анализ проекта системы реального времени по- зволяет на ранних этапах выявить потенциальные проблемы с произ- водительностью. Анализу подвергается проект ПО, концептуально
исполняемый на данной аппаратной конфигурации с рассчитанной внешней рабочей нагрузкой. Обнаружив вероятные проблемы, легко
рассмотреть альтернативные подходы к проектированию или иную конфигурацию аппаратуры.
Ниже речь пойдет о способе анализа производительности проек- та ПО, основанном на теории планирования в реальном времени. Этот метод прекрасно работает для систем реального времени, кото- рые должны выдерживать жесткие временные ограничения [24]. Он позволяет определить, будут ли выполнены наложенные ограниче- ния.
Мы опишем два подхода к анализу производительности. В пер- вом используется теория планирования в реальном времени, а во вто- ром – анализ последовательности событий. Затем мы объединим оба подхода. Каждый из них применим к проектам, состоящим из набора параллельных задач. Следовательно, анализ производительности можно начинать сразу после проектирования архитектуры задач.
11.1.Теория планирования в реальном времени
Втеории планирования в реальном времени рассматриваются вопросы приоритетного планирования параллельных задач с жестки- ми временными ограничениями. В частности, она позволяет предска- зать, будет ли группа задач, для каждой из которых потребление ре- сурсов ЦП известно, удовлетворять этим ограничениям. В теории предполагается использование алгоритма приоритетного планиро- вания с вытеснением.
По мере своего развития теория планирования в реальном вре- мени применялась к все более сложным задачам, в числе которых
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
259 |
планирование независимых периодических задач, планирование в си- туации, когда есть и периодические, и апериодические (асинхронные) задачи, а также планирование задач, требующих синхронизации.
11.1.1.Планирование периодических задач. Изначально алгорит-
мы планирования в реальном времени разрабатывались для незави- симых периодических задач, то есть таких периодических задач, ко- торые не взаимодействуют друг с другом и, следовательно, не нуж- даются в синхронизации. С тех пор было проведено множество тео- ретических исследований, результаты которых теперь можно приме- нять к практическим задачам, что и будет продемонстрировано на примерах. Но начнем мы с базового метода монотонного анализа час- тот для независимых периодических задач, чтобы понять, как обоб- щить его на более сложные ситуации.
Периодическая задача характеризуется периодом Т (частота за- пуска) и временем выполнения С (время ЦП, необходимое для за- вершения одного запуска). Коэффициент использования ЦП для нее равен U = С/Т. Задача называется планируемой (schedulable), если она удовлетворяет всем временным ограничениям, то есть ее исполнение завершается до истечения периода. Группа задач именуется плани- руемой, когда планируемой является каждая входящая в нее задача.
Если дано множество независимых периодических задач, то ал- горитм монотонных частот назначает каждой задаче фиксирован- ный приоритет, вычисляемый на основе ее периода: чем короче пери- од, тем выше приоритет. Рассмотрим задачи ta, tb и tc с периодами 10, 20 и 30 соответственно. Наивысший приоритет будет назначен за- даче ta с самым коротким периодом, средний приоритет - задаче tb а самый низкий – задаче tc, период которой максимален.
11.1.2.Теорема о верхней границе коэффициента использования ЦП. Пользуясь теорией планирования, можно показать, что группа
независимых периодических задач всегда удовлетворяет временным ограничениям при условии, что сумма отношений С/Т по всем зада- чам меньше некоторого граничного значения.
Теорема о верхней границе коэффициента использования ЦП (теорема 1) гласит:
Множество из п независимых периодических задач, планируемых согласно алгоритму монотонных частот, всегда удовлетворяет временным ограничениям, если
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
260 |
|||||
|
С1 |
|
Cn |
1 / n |
|
|
|
|
+ ... + |
|
≤ n(2 |
−1) = U (n) |
|
|
T |
T |
|
|||
1 |
|
n |
|
|
|
где Сi и Тi – время выполнения и период задачи ti соответственно.
Верхняя граница U(n) стремится к 69% (ln 2), когда число задач стремится к бесконечности. Значения верхней границы для числа за- дач от 1 до 9 приведены в табл.11.1. Это оценка для худшего случая, но, как показано в работе [22], для случайно выбранной группы задач вероятная верхняя граница равна 88%. Если периоды задач гармо- ничны (являются кратными друг другу), то верхняя граница оказыва- ется еще выше.
|
Таблица 11.1 |
|
|
Теорема о верхней границе коэффициента использования |
|
|
|
|
Число задач n |
Верхняя граница коэффициента использова- |
|
|
ния U(n) |
|
1 |
1,000 |
|
2 |
0,828 |
|
3 |
0,779 |
|
4 |
0,756 |
|
5 |
0,743 |
|
6 |
0,734 |
|
7 |
0,728 |
|
8 |
0,724 |
|
9 |
0,720 |
|
Бесконечность |
0,690 |
|
|
|
|
Достоинство алгоритма монотонных частот заключается в том, что он сохраняет устойчивость в условиях краткосрочной перегрузки. Другими словами, подмножество всего множества задач, состоящее из задач с наивысшими приоритетами (то есть наименьшими перио- дами), все еще будет удовлетворять временным ограничениям, если
система в течение короткого промежутка времени подвергается сверхрасчетной нагрузке. Задачи с низкими приоритетами по мере
повышения загрузки процессора могут эпизодически выполняться дольше положенного времени.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
261 |
Применим теорему о верхней границе коэффициента использо- вания к трем задачам со следующими характеристиками (время всю- ду выражено в миллисекундах):
Задача t1: С1 = 20; Т1 = 100; U1= 0,2. Задача t2: C2 = 30; Т2 = 150; U2= 0,2. Задача t3: С3 = 60; Т3 = 200; U3= 0,3.
Предполагается, что накладные расходы на контекстное пере- ключение, происходящее один раз в начале и один раз в конце вы- полнения задачи, содержатся в оценке времени ЦП.
Полный коэффициент использования ЦП для всех трех задач ра- вен 0,7, что ниже, чем величина 0,779, которую дает теорема о верх- ней границе. Таким образом, эти задачи будут удовлетворять времен- ным ограничениям.
Но попробуем изменить характеристики третьей задачи:
Задача t3: C3 = 90; Т3 = 200; U3= 0,45.
Теперь полный коэффициент использования ЦП равен 0,85, то есть выше, чем 0,779. Следовательно, теорема о верхней границе не дает гарантии, что задачи смогут удовлетворить временным ограни- чениям. Далее нужно проверить, так ли это для первых двух задач.
Принимая во внимание устойчивость алгоритма монотонных частот, для подобной проверки допустимо применить теорему о верхней границе коэффициента использования ЦП. Для первых двух задач полный коэффициент равен 0,4, то есть намного ниже значения, полученного из теоремы (0,828). Значит, эти задачи всегда удовле- творяют временным ограничениям. Учитывая, что теорема о верхней границе дает пессимистическую оценку, мы можем проверить, явля- ется ли задача t3 планируемой, посредством более точной теоремы о времени завершения.
11.1.3. Теорема о времени завершения. Если для некоторого множества задач полный коэффициент использования больше, чем требует теорема о верхней границе, то можно прибегнуть к помощи теоремы о времени завершения [22], которая дает более достоверный критерий. Она позволяет точно определить, является ли данное мно- жество независимых периодических задач планируемым. В этой тео- реме предполагается худший случай, когда все периодические задачи готовы к исполнению одновременно. Если в указанных условиях вы-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
262 |
полнение задачи завершается до истечения ее первого периода, то она всегда будет удовлетворять временным ограничениям [22]. Таким об- разом, теорема о времени завершения проверяет, способна ли каждая задача завершиться до истечения своего первого периода.
Теорема о времени завершения (теорема 2) гласит:
Если имеется такое множество независимых периодических задач, в котором каждая задача успевает завершиться вовремя в случае, когда все задачи запускаются одновременно, то все задачи смогут завершиться вовремя при любой комбинации моментов запуска.
Чтобы убедиться в выполнении условий теоремы, необходимо проверить момент завершения первого периода для данной задачи ti,
а также моменты завершения периодов всех задач с более высоким приоритетом. Согласно алгоритму монотонных частот, периоды по- добных задач будут меньше, чем для задачи ti. Эти периоды называ- ются точками планирования. Задача t. один раз займет ЦП на время Сi в течение своего периода Тi. Но более приоритетные задачи будут выполняться чаще и могут по крайней мере один раз вытеснить ti. Поэтому нужно учесть также время ЦП, затраченное на более при- оритетные задачи.
Теорема о времени завершения графически представляется с помощью временной диаграммы, на которой показана упорядоченная по времени последовательность выполнения группы задач. Рассмот- рим три приведенные выше задачи со следующими характеристика- ми:
Задача t1: С1 = 20; Т 1= 100; U1= 0,2. Задача t2: C2 = 30; T2 = 150; U2= 0,2. Задача t3: C3 = 90; T3 = 200; U3= 0,45.
Их выполнение показано на временной диаграмме на рис.11.1. В методе COMET временная диаграмма – это диаграмма последова- тельности с временными метками. Заштрихованные участки обозна- чают интервалы времени, в течение которых реализуется данная за- дача. Поскольку в приведенном примере есть всего один процессор, то в каждый момент времени выполняется только одна задача.
В худшем случае, когда все три задачи готовы к работе одно- временно, первой запускается t1, так как у нее самый короткий пери-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
263 |
од и, значит, самый высокий приоритет. Она завершается по проше- ствии 20 мс, после чего в течение 30 мс исполняется задача t2 а затем t3 В конце первой точки планирования Т1 = 100, что соответствует сроку завершения t1; t1 уже завершена и, следовательно, удовлетво- ряет временным ограничениям. Задача t2 также завершила работу за- долго до срока, а задача t3 потратила 50 мс из необходимых 90.
Вначале второго периода t1 задача t3 вытесняется задачей t3. Проработав 20 мс, t2 завершается и уступает процессор задаче t3. За- дача t3 выполняется до конца периода Т2 (150 мс), который соответст- вует второй точке планирования, определяемой сроком завершения t2. Поскольку t2 завершилась до момента Т1 (меньшего, чем Т2), то она уложилась в отведенный для нее срок. В этот момент t3 использовала 80 мс из необходимых 90.
Вначале второго периода задачи t2 она вытесняет задачу t3 Про- работав 30 мс, t2 завершается и возвращает процессор задаче t3 Задача t3 исполняется еще 10 мс, И в этот момент заканчиваются ее 90 мс, то есть она успела завершиться до истечения своего срока. На рис.11.1 изображена третья точка планирования, которая расположена в конце
второго периода t1 (2T1= 200) и одновременно в конце первого перио- да t3 (T3 = 200). Из рисунка видно, что каждая задача завершает ис- полнение до конца своего первого периода, так что все вместе они удовлетворяют временным ограничениям.
На рис.11.1 показано, что ЦП простаивает 10 мс перед началом
третьего периода t1 (этот момент совпадает с началом второго перио- да t3). Отметим, что на протяжении интервала длительностью 200 мс процессор работал 190 мс, то есть задействовался на 95%, хотя пол- ный коэффициент использования равен 0,85. По истечении времени, равного наименьшему общему кратному трех периодов (для данного примера 600 мс) средний коэффициент использования оказывается равным 0,85.
www.pdffactory.com

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
264 |
Рис.17.1. Временная диаграмма (диаграмма последовательности с временными метками)
11.1.4. Строгая формулировки теоремы о времени завершения.
Теорему о времени завершения можно строго сформулировать следующим образом [24] (теорема 3):
Множество независимых периодических задач, планируемых согласно алгоритму монотонных частот, будет удовлетворять временным ограничениям при любой комбинации моментов запуска тогда и только тогда, когда
i |
1 |
é pT |
ù |
|
|
"i,1 £ i £ n,min åCj |
|
ê |
k |
ú |
£ 1, |
pT |
T |
||||
j =1 |
|
ë |
j |
û |
|
k ê |
ú |
|
(k, p) Î Ri ,
где Сi и Тi – время выполнения и период задачи tj соответственно, а
Ri = {(k,p): l≤k≤i, p=l,...,[Ti/Tk]}.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
265 |
В этой формуле ti – это проверяемая задача, a tk – любая из бо- лее приоритетных задач, влияющих на время выполнения ti. Для дан- ной пары задач ti и tk каждое значение р представляет некоторую точку планирования задачи tk. В каждой точке планирования необхо- димо рассмотреть один раз время ЦП Сi, потраченное на задачу ti, а также время, израсходованное на более приоритетные задачи. Это по- зволит определить, успеет ли ti завершить выполнение к данной точ- ке планирования.
Рассмотрим применение теоремы 3 к трем задачам, показанным на рис.11.1. Временная диаграмма – это графическое представление вычислений, выполняемых в теореме 3. Снова обратимся к худшему случаю, когда все три задачи одновременно готовы к выполнению. Из теоремы 3 вытекает неравенство для первой точки планирования
Т1 = 100:
С1 + C2+ С3 < Т1;
20 + 30 + 90 > 100; p=l, k=l.
Чтобы это неравенство удовлетворялось, все три задачи должны завершиться на протяжении первого периода Т1 задачи t1. Это не так: прежде чем задача t3 успевает завершиться, ее вытесняет задача t1 в начале своего второго периода.
Теорема 3 дает также неравенство для второй точки планирова-
ния Т2 = 150:
2С1 + С2 + С3 ≤ Т2;
40 + 30 + 90 > 150; p=l, k=2.
Чтобы полученное неравенство удовлетворялось, задача t1 должна завершиться дважды, а задачи t2 и t3 – по одному разу на про- тяжении периода Т2 задачи t2. И это не так, поскольку задача t3 вытес- няется задачей t2 в начале второго периода t2.
Неравенство для третьей точки планирования, которая находит- ся в конце второго периода t1 (2Т1 = 200) и одновременно в конце первого периода t3 (T3 = 200), выглядит следующим образом:
2С1 + 2С2 + C3 ≤ 2Т1 = Т3;
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
266 |
40 + 60 + 90 < 200;
р = 2, k = 1 или р = 1, k = 3.
На этот раз неравенство верно, так что все три задачи успевают выполниться в срок. Коль скоро они удовлетворяют временным огра- ничениям хотя бы в одной точке планирования, вся группа является планируемой.
11.1.5.Планирование периодических и апериодических задач.
Если имеются как периодические, так и апериодические (асинхрон- ные) задачи, то алгоритм монотонных частот необходимо обобщить. Предполагается, что апериодическая задача активизируется в случай-
ный момент времени и выполняется один раз в течение некоторого промежутка времени Тa, который обозначает минимальное время между последовательными возникновениями события, акти- визирующего эту задачу. Время ЦП Сa, необходимое апериодической задаче для обработки события, резервируется на каждом периоде Тa как своего рода квота. Когда поступает событие, апериодическая за- дача активизируется, запрашивает квоту и потребляет до Сa единиц процессорного времени. Если в течение периода Тa задача так и не была активизирована, квота на этот период аннулируется. В данных
предположениях коэффициент использования ЦП апериодической задачей равен Сa/Тa. Однако здесь приведена оценка для худшего случая, так как, вообще говоря, квоты требуются не всегда.
Если в приложении имеется много апериодических задач, раз-
решается воспользоваться алгоритмом спорадического сервера [25].
Сточки зрения анализа планируемости апериодическая задача (назы- ваемая спорадическим сервером) эквивалентна периодической задаче с периодом, равным минимальному времени между возникновениями событий, которые активизируют апериодическую задачу. Поэтому Тa удобно считать периодом эквивалентной периодической задачи. Ка- ждой апериодической задаче выделяется бюджет, равный Сa единиц времени процессора, который может быть использован в любой мо- мент на протяжении периода Тa. Таким образом, апериодическим за- дачам допустимо назначить различные уровни приоритета в соответ- ствии с эквивалентными периодами и рассматривать их как периоди- ческие.
11.1.6.Планирование с синхронизацией задач. Теория планиро-
вания в реальном времени распространяется и на синхронизацию за-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
267 |
дач. Проблема здесь в том, что задача, входящая в критическую об- ласть, может блокировать другие более приоритетные задачи, кото- рые хотят войти в ту же область. Ситуация, когда низкоприоритетная задача не дает выполняться высокоприоритетной, называется инвер- сией приоритетов. Обычно это связано с тем, что первая задача за- хватывает ресурс, который нужен второй.
Неограниченная инверсия приоритетов возникает, когда низко- приоритетная задача, находящаяся в критической области, сама за- блокирована другими более приоритетными задачами. Одно из реше- ний данной проблемы состоит в том, чтобы запретить вытеснение за- дач, находящихся в критической секции. Но это приемлемо, если время пребывания в критической секции очень мало. В противном случае низкоприоритетная задача способна заблокировать высоко- приоритетные задачи, которым нужен разделяемый ресурс.
Протокол предельного приоритета [24] позволяет избежать ту-
пиковой ситуации и гарантирует ограниченную инверсию приорите- тов за счет того, что высокоприоритетная задача может блокировать- ся самое большее одной низкоприоритетной. Ниже мы рассмотрим простейший случай, когда есть всего одна критическая секция.
Чтобы предотвратить задержку высокоприоритетных задач низ- коприоритетными на долгое время, применяется коррекция приори- тетов. Когда низкоприоритетная задача t1 оказывается в критической области, она в состоянии блокировать высокоприоритетные задачи, которым нужен тот же ресурс. Если это происходит, то приоритет t1 повышается до максимального из приоритетов блокируемых задач. Цель состоит в том, чтобы ускорить выполнение низкоприоритетной задачи и сократить время ожидания для высокоприоритетных.
Предельный приоритет Р двоичного семафора S – максимум из приоритетов всех задач, которые могут занять данный семафор. Та- ким образом, низкоприоритетная задача, захватившая S, способна по- высить свой приоритет до Р в зависимости от того, какие задачи она блокирует.
Еще одна возможная проблема – это тупиковая ситуация (deadlock), которая возникает, когда двум задачам нужно захватить по два ресурса. Если каждая задача захватит по одному ресурсу, то ни одна не сможет завершиться, поскольку будет ждать, пока другая освобо- дит ресурс. Протокол предельного приоритета справляется и с такой трудностью [24].
www.pdffactory.com