- •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. ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
|
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
|
281 |
|
|
|
|
|
|
Продолжение табл. 11.2 |
|
|
1 |
2 |
3 |
4 |
|
|
Затраты на Контекст- |
0,5 |
|
|
|
|
ное Переключение |
|
|
|
|
|
(Сx) |
|
|
|
|
|
Автодатчики (С10) |
5 |
6 |
|
|
|
Интерфейс Вала (С11) |
1 |
2 |
|
|
|
Путь и Скорость (С12) 10 |
11 |
|
|
Полное время, потраченное ЦП на все задачи, которые участву- ют в обработке последовательности событий, равно 35 мс.
Подстановка данных из табл.11.2 в уравнение 1 дает оценку Сe = 35 мс. Подстановка в уравнение 2 дает Сa = 79 мс. Следователь- но, из уравнения 3 получаем оценку полного времени ЦП: Сt == 114 мс. Это намного меньше, чем 250 мс.
Можно поэкспериментировать с другими значениями парамет- ров, чтобы проверить, насколько оценка времени реакции чувстви- тельна к ошибкам. Например, если окажется, что на контекстное пе- реключение уходит 1 мс, а не 0,5 мс, то Сe возрастет до 37 мс, а Сa – до 108 мс. В результате полное время ЦП составит 145 мс, что на 31 мс больше первоначальной оценки, но все же далеко до предельных
250 мс.
11.6. Пример анализа производительности с применением теории планирования в реальном времени
В этом разделе мы опишем теорию планирования в реальном времени применительно к системе круиз-контроля и мониторинга. Сначала речь пойдет только о периодических задачах. А затем в по-
лученные данные будут внесены поправки с учетом апериодических задач, активизируемых действиями водителя.
Проанализируем худший случай, когда от ЦП требуется больше всего времени: машина движется в режиме автоматического управле- ния с максимальной скоростью вращения вала. Пусть период j-ой пе- риодической задачи равен Тj, время ее выполнения Сj, а коэффициент использования ЦП Uj = Сj / Тj. Во время, потребляемое каждой пе-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
282 |
риодической задачей, включены затраты на два контекстных пере- ключения. В табл.11.3 приведены характеристики всех периодиче- ских задач.
Таблица 11.3 Планирование в реальном времени для системы круиз-контроля и мониторинга: параметры периодических задач
Задача |
Вре- |
Период Тi |
Коэффициент |
Приори- |
|
мя |
|
использования |
тет |
Интерфейс Вала |
2 |
10 |
0,20 |
1 |
Автодатчики |
6 |
100 |
0,06 |
2 |
Путь и Скорость |
11 |
250 |
0,04 |
4 |
Калибровка |
5 |
500 |
0,01 |
6 |
Корректировка Ско- |
15 |
250 |
0,60 |
5 |
рости |
|
|
|
|
Интерфейс Дросселя 6 |
100 |
0,06 |
3 |
|
Интерфейс Кнопки |
4 |
500 |
0,01 |
7 |
Сброса |
|
|
|
|
Таймер Средних |
20 |
1000 |
0,02 |
9 |
Показателей |
|
|
|
|
Интерфейс Кнопки |
6 |
1000 |
0,01 |
8 |
Сброса Обслужива- |
|
|
|
|
ния |
|
|
|
|
Таймер Обслужива- |
15 |
2000 |
0,01 |
10 |
ния |
|
|
|
|
Полный коэффициент использования Un равен 0,48.
Рассмотрим названные периодические задачи:
– Интерфейс Вала. Предполагается, что эта задача периодиче- ская. На самом деле она апериодическая, так как активизируется пре- рыванием от вала. Однако прерывания поступают регулярно, при ка- ждом обороте вала, так что задача ведет себя как периодическая. Планируется худший случай, когда вал вращается со скоростью 6000 об/мин, то есть прерывания возникают каждые 10 мс, что составляет минимальный период эквивалентной периодической задачи. По-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
283 |
скольку период данной задачи самый короткий, то ей назначен наи- высший приоритет. Время выполнения составляет 2 мс с учетом за- трат на два контекстных переключения по 0,5 мс каждое;
–Автодатчики. Период данной задачи равен 100 мс, а время выполнения с учетом контекстных переключений составляет 6 мс;
–Путь и Скорость. Период этой задачи 250 мс, а время выпол- нения – 11 мс;
–Калибровка. Период равен 500 мс, время выполнения – 5 мс;
–Корректировка Скорости. При активизации в режиме автома- тического управления задача выполняется каждые 250 мс и вычисля- ет значение дросселя, на что уходит 15 мс;
–Интерфейс Дросселя. При активизации в режиме автоматиче- ского управления задача выполняется каждые 1000 мс и выводит но- вое положение дроссельной заслонки, на что уходит 6 мс;
–Интерфейс Кнопок Сброса Средних Показателей. Период ра-
вен 500 мс, время выполнения – 4 мс;
–Таймер Средних Показателей. Эта задача выполняется срав-
нительно редко, ее период составляет 1 с, а время ЦП – 20 мс. Она некритична по времени;
–Интерфейс Кнопки Сброса Обслуживания. Период равен 1с,
время выполнения – 6 мс;
–Таймер Обслуживания. Эта задача выполняется еще реже, пе- риод равен 2 с, а время выполнения – 15 мс. Она также некритична по времени.
Частотно-монотонные приоритеты присваиваются задачам так, что более приоритетными оказываются задачи с меньшим периодом. Значит, самый высокий приоритет будет иметь задача Интерфейс Вала с периодом 10 мс. У двух задач – Интерфейс Дросселя и Авто-
датчики – период равен 100 мс. Задача Автодатчики активна всегда,
азадача Интерфейс Дросселя – только в режиме автоматического управления. Задаче Автодатчики назначен более высокий приоритет, поскольку от полученной ею входной информации (например, о на- жатии тормоза) может зависеть воздействие на дроссель. Две задачи имеют период 250 мс, больший приоритет назначен задаче Путь и Скорость, поскольку она вычисляет значение текущей скорости, ис- пользуемой задачей Корректировка Скорости, если последняя ак- тивна. Самый низкий приоритет у задачи Таймер Обслуживания, ко- торая имеет максимальный период.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
284 |
Из табл. 17.3 видно, что полный коэффициент использования ЦП, рассчитанный для 10 задач, равен 0,48, что намного ниже теоре- тически предельного значения 0,69, которое дает теорема о верхней границе коэффициента использования. Следовательно, если приори- теты назначать согласно алгоритму монотонных частот, то все задачи успеют завершиться в срок.
Отметим, что доступ к разделяемым хранилищам данных вклю- чает одну команду чтения или одну команду записи. Это настолько мало, что временем задержки из-за блокировки одной задачи другой допустимо пренебречь.
11.7. Анализ производительности по теории планирования в реальном времени и анализа последовательности событий
Рассмотрим случай, когда водитель инициирует внешнее собы- тие, изменив положение ручки круиз-контроля или нажав на тормоз. Для этого придется проанализировать задачи, участвующие в обра- ботке последовательности событий, а также периодические задачи. В
первом решении мы заменим четыре задачи из последовательности событий на эквивалентную апериодическую задачу.
11.7.1. Эквивалентная апериодическая задача. Необходимо учесть влияние, которое оказывает дополнительная нагрузка, вызван- ная действиями водителя, на стационарную нагрузку, обусловленную периодическими задачами. Худший случай возникает, когда автомо- биль уже движется в автоматическом режиме, иначе задачи Коррек-
тировка Скорости и Интерфейс Дросселя не работают, и нагрузка на процессор меньше.
Рассмотрим, что происходит, когда водитель переводит ручку круиз-контроля в новое положение. При анализе последовательности событий и на соответствующей диаграмме показано, что в обработке события участвуют задачи Интерфейс Ручки Круиз-Контроля, Круиз- Контроль, Корректировка Скорости и Интерфейс Дросселя. Время ЦП, необходимое для обработки, задано уравнением 1 (см. раздел 11.5). Хотя в цепочку событий вовлечены четыре задачи, они должны выполняться в строго определенной последовательности, так как ка- ждая следующая активизируется сообщением от предыдущей. По- этому в первом приближении можно считать, что перечисленные за- дачи эквивалентны одной апериодической задаче, на выполнение ко-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
285 |
торой уходит время Ce. Ce – это сумма времен выполнения четырех отдельных задач плюс затраты на межзадачные коммуникации и кон- текстное переключение. Эквивалентная апериодическая задача назы-
вается задачей последовательности событий.
Из теории планирования в реальном времени следует, что апе- риодическую задачу можно рассматривать как периодическую с пе- риодом, равным минимальному интервалу между событиями. Пусть период эквивалентной апериодической задачи равен Тe. Предполо- жим, что Тe – это еще и максимальное время реакции на действия во- дителя. Например, если Тe составляет 250 мс, то система должна от- реагировать на нажатие тормоза или отключение круиз-контроля в течение 250 мс. Для эквивалентной периодической задачи последова- тельности событий будем считать, что водитель способен иницииро- вать не более четырех внешних событий в секунду, это худший и крайне маловероятный случай. Тем не менее, если удастся доказать, что система может справиться и с такой ситуацией, уверенность в ее работоспособности многократно возрастет.
Первоначально задаче последовательности событий назначается естественный частотно-монотонный приоритет. Поскольку у аперио- дичной задачи последовательности событий такой же период, что и у двух других периодических задач – Корректировка Скорости и Путь и Скорость, – то ей присваивается наивысший приоритет. Но у задач
Интерфейс Вала, Интерфейс Дросселя и Автодатчики более корот-
кие периоды, поэтому их частотно-монотонные приоритеты будут выше, чем у задачи последовательности событий. Параметры алго- ритма планирования для данного случая, а также назначенные зада- чам приоритеты показаны в табл.11. 4 (случай 1).
После подстановки оценок времени ЦП из табл.11.2 в уравнение 1 (см. раздел 11.5) получаем, что время Ce выполнения эквивалент- ной задачи последовательности событий равно 35 мс. Учитывая, что ее период Te составляет 250 мс, коэффициент использования ЦП ока- зывается равным 0,14. Так как полный коэффициент использования ЦП периодическими задачами равен 0,48, то в сумме получаем коэф- фициент 0,62, что меньше предельного значения 0,69. Следовательно, задача последовательности событий удовлетворяет временным огра- ничениям; то же можно сказать обо всех периодических задачах.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
286 |
Таблица 11.4 Планирование в реальном времени для системы круиз-контроля и мониторинга: параметры периодических задач и задачи последовательности событий
Задача |
Вре- |
Пери- |
Коэффи- |
Приори- |
Приори- |
|
мя |
од Ti |
ци-ент ис- |
тет (слу- |
тет (слу- |
|
ЦП Ci |
|
поль- |
чай 1) |
чай 2) |
|
|
|
зования Ui |
|
|
Интерфейс вала |
2 |
10 |
0,20 |
1 |
1 |
Автодатчики |
6 |
100 |
0,06 |
3 |
3 |
Путь и Скорость |
11 |
250 |
0,04 |
5 |
5 |
Калибровка |
5 |
500 |
0,01 |
7 |
7 |
Корректировка |
15 |
250 |
0,06 |
6 |
6 |
Скорости |
|
|
|
|
|
Интерфейс Дрос- |
6 |
100 |
0,06 |
3 |
4 |
селя |
|
|
|
|
|
Интерфейс Кноп- |
4 |
500 |
0,01 |
8 |
8 |
ки Сброса |
|
|
|
|
|
Таймер Средних |
20 |
1000 |
0,02 |
10 |
10 |
Показателей |
|
|
|
|
|
Интерфейс |
6 |
1000 |
0,01 |
9 |
9 |
Кнопки Сброса |
|
|
|
|
|
Обслуживания |
|
|
|
|
|
Таймер Обслу- |
15 |
2000 |
0,01 |
11 |
11 |
живания |
|
|
|
|
|
Задача Последо- |
35 |
250 |
0,14 |
4 |
2 |
вательности Со- |
|
|
|
|
|
бытий |
|
|
|
|
|
Полный коэффициент использования Un=0,62 Назначение приоритетов:
Случай 1 – частотно-монотонные; Случай 2 – не частотно-монотонные.
Отметим, что нажатие тормоза допустимо проанализировать так же, как и изменение положения ручки круиз-контроля. В обработке события от педали тормоза участвуют задачи Автодатчики, Круиз-
Контроль, Корректировка Скорости и Интерфейс Дросселя, причем
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
287 |
последние три задействованы и в обработке события от ручки круиз- контроля. Из табл.11.2 видно, что оценка времени выполнения задачи
Автодатчики (5 мс) такая же, как для задачи Интерфейс Ручки Кру-
из-Контроля. Поэтому на обработку нажатия тормоза ЦП тратит столько же времени, сколько на обработку события от ручки круиз- контроля. Хотя период задачи Автодатчики равен 100 мс, мы пред- полагаем, что водитель не в состоянии генерировать события с часто- той больше чем четыре раза в секунду, будь то нажатия на педаль тормоза или манипулирование ручкой круиз-контроля. Значит, часто- та запуска задачи Автодатчики вполне достаточна для того, чтобы не пропустить ни одного события.
Итак, можно считать, что случай нажатия педали тормоза анало- гичен изменению положения ручки круиз-контроля и их допустимо рассматривать одинаково. Стало быть, и результаты анализа последо- вательности событий будут идентичными.
11.7.2. Назначение других приоритетов. В первом решении бы-
ло сделано одно допущение и одно приближение. Сначала рассмот- рим допущение о том, что всем задачам можно назначить частотно- монотонные приоритеты. В таком случае имеется вероятность, что
задача последовательности событий пропустит прерывание от ручки круиз-контроля, если будет дожидаться завершения задач Интерфейс Вала, Интерфейс Дросселя и Автодатчики. С другой стороны, если назначить задаче последовательности событий наивысший приори- тет, то задача Интерфейс Вала не успеет отработать, так как ее пери- од равен 10 мс, а время выполнения задачи последовательности со- бытий – 35 мс.
Чтобы избежать этого, мы присвоим задаче последовательности событий приоритет ниже, чем задаче Интерфейс Вала, но выше, чем у задач Интерфейс Дросселя и Автодатчики. Таким образом, при-
оритет задачи последовательности событий будет отличаться от час- тотно-монотонного; это показано в табл.11.4 (случай 2). Следова- тельно, нужно явно проверить, что каждая задача удовлетворяет сво- им временным ограничениям.
У двух задач с наивысшими приоритетами – Интерфейс Вала и задача последовательности событий – суммарный коэффициент ис- пользования ЦП равен 0,34, так что они без труда укладываются в срок. Но уже две следующие задачи – Интерфейс Дросселя и Авто- датчики – могут быть задержаны задачей последовательности собы-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
288 |
тий. Необходимо провести анализ худшего случая с целью убедиться, что они успеют завершиться вовремя, учитывая при этом, что период каждой равен 100 мс.
Рассмотрим самую большую нагрузку на процессор в течение интервала длиной 100 мс: десять раз активизируется задача Интер- фейс Вала, по одному разу – четыре задачи, участвующие в обработ- ке последовательности событий, и по одному разу – задачи Интер-
фейс Дросселя и Автодатчики. Задача Интерфейс Вала потребляет
10 × 2 = 20 мс. Четыре задачи, задействованные в обработке последо- вательности событий, требуют 35 мс. Для каждой из задач Интер- фейс Дросселя и Автодатчики нужно еще по 6 мс. Всего ЦП затрачи- вает 67 мс, то есть меньше, чем период задач Интерфейс Дросселя и Автодатчики (100 мс). Таким образом, все задачи успевают завер- шиться в срок.
Отметим, что, хотя полный коэффициент использования ЦП со- ставляет 62%, во время всплесков активности кратковременная на- грузка может быть гораздо больше. Так, на рассмотренном выше ин- тервале протяженностью 100 мс полный коэффициент использования
тремя стационарными задачами и одной задачей последовательности событий равен 0,67, а значит, при этом все еще будут выполняться низкоприоритетные задачи. Если в течение данного интервала акти- визируется еще и задача Путь и Скорость, то коэффициент исполь- зования поднимется до 0,78. Но алгоритм планирования в реальном времени гарантирует, что все задачи будут удовлетворять временным ограничениям при любых кратковременных всплесках активности.
11.7.3. Детальный анализ апериодических задач. Для более пол-
ного анализа задачи круиз-контроля нужно по отдельности рас- смотреть все задачи, участвующие в обработке последовательности событий. Параметры каждой из четырех задач приведены в табл. 17.2 и 17.5, причем затраты на межзадачные коммуникации и контекстное переключение уже учтены во времени выполнения.
Таблица 11.5 Планирование в реальном времени для системы круиз-контроля и мониторинга: параметры периодических и апериодических задач
www.pdffactory.com
|
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
|
|
289 |
|
|
|
|
|
|
|
|
|
|
|
|
Задача |
Вре- |
Период Тi |
Коэффициент |
Приори- |
||
|
|
мя |
|
использования |
тет |
||
|
|
ЦП Сi |
|
Ui |
|
|
|
|
Интерфейс Вала |
2 |
10 |
0,20 |
1 |
|
|
|
Автодатчики |
6 |
100 |
0,06 |
3 |
|
|
|
Путь и Скорость |
11 |
250 |
0,04 |
7 |
|
|
|
Калибровка |
5 |
500 |
0,01 |
8 |
|
|
|
Корректировка Ско- |
16 |
250 |
0,06 |
6 |
|
|
|
рости* |
6 |
100 |
0,06 |
4 |
|
|
|
Интерфейс Дроссе- |
|
|
||||
|
ля* |
|
|
|
|
|
|
|
Интерфейс Кнопки |
4 |
500 |
0,01 |
9 |
|
|
|
Сброса |
20 |
1000 |
0,02 |
11 |
|
|
|
Таймер Средних |
|
|
||||
|
Показателей |
|
|
|
|
|
|
|
Интерфейс Кнопки |
6 |
1000 |
0,01 |
10 |
|
|
|
Сброса Обслужива- |
|
|
|
|
|
|
|
ния |
|
|
|
|
|
|
|
Таймер Обслужива- |
15 |
2000 |
0,01 |
12 |
|
|
|
ния |
6 |
250 |
0,02 |
2 |
|
|
|
Интерфейс Ручки |
|
|
||||
|
Круиз-Контроля* |
|
|
|
|
|
|
|
Круиз-Контроль* |
7 |
250 |
0,03 |
5 |
|
|
* Задачи, участвующие в обработке последовательности собы-
тий.
Кроме того, время ЦП для задачи Интерфейс Ручки Круиз- Контроля равно С1 + С2. Все задачи, принимающие участие в обра- ботке события, считаются периодическими с периодом, равным ми- нимальному времени между событиями (250 мс). Единственное ис- ключение – задача Интерфейс Дросселя, которая, кроме того, еще и выполняется каждые 100 мс.
Чтобы гарантировать своевременную реакцию на событие, зада- чам, которые участвуют в его обработке, следует по возможности на- значить максимальный приоритет. В частности, для обеспечения бы- строй обработки внешнего прерывания первая задача в цепочке –
Интерфейс Ручки Круиз-Контроля – получает приоритет, выше ко-
торого стоит лишь задача Интерфейс Вала. Поскольку этот при-
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
290 |
оритет выше, чему двух задач с более коротким периодом (Интер- фейс Дросселя и Автодатчики), монотонность частот нарушена. Впрочем, остальным трем задачам в цепочке назначаются обычные частотно-монотонные приоритеты. Задача Интерфейс Дросселя, имеющая период 100 мс, получает четвертый по величине приоритет, а за ней оказывается задача Автодатчики с таким же периодом. Двум другим задачам – Круиз-Контроль и Корректировка Скорости – с
одинаковым периодом по 250 мс назначаются следующие два при- оритета.
Чтобы завершить анализ, необходимо применить обобщенную теорию планирования в реальном времени, которая требует явно про- верить, что ни одна задача не выходит за свою верхнюю границу. Ре- зультаты показаны на рис.11.3.
Наивысший приоритет у задачи Интерфейс Вала с периодом 10 мс. Когда наступает время выполнения, она вытесняет все остальные задачи и работает в течение 2 мс, так что для нее временные ограни- чения заведомо удовлетворены. Задача Интерфейс Ручки Круиз- Контроля описывается вместе с остальными задачами в последова- тельности обработки события, поскольку важно, чтобы все четыре задачи успели завершиться за 250 мс.
Рассмотрим функционирование четырех задач на временном ин- тервале Тe протяженностью 250 мс. Как и прежде, наша цель – удо- стовериться, что они закончат выполнение до истечения 250 мс. При- меним обобщенную теорему о верхней границе коэффициента ис- пользования ЦП, принимая во внимание следующие четыре фактора:
–время выполнения задач, участвующих в обработке события. Полное время выполнения всех четырех задач Сe = 35 мс, а Тt = 250 мс. Коэффициент использования ЦП равен 0,14;
–время вытеснения более приоритетными задачами с периода- ми, меньшими 250 мс. Таких задач три. Задача Интерфейс Вала с пе- риодом 10 мс может вытеснить любую задачу не более 25 раз и по-
требит 25 × 2 = 50 мс. Задачи Интерфейс Дросселя и Автодатчики с
периодом 100 мс в состоянии вытеснить любую из остальных низко- приоритетных задач до трех раз и будут исполняться не дольше 3 (6 +
6)= 36 мс;
общее время вытеснения составляет 50 + 36 == 86; суммарный коэффициент использования за счет вытеснения ра-
вен 0,2 + 0,06+0,06=0,32;
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
291 |
–вытеснение более приоритетными задачами с большими пе- риодами. Таких задач нет;
–время блокировки задачами с более низким приоритетом. Та- ких задач нет.
Теперь мы можем определить общее затраченное время и пол- ный коэффициент использования ЦП:
Общее затраченное время = общее время вытеснения + общее время выполнения = 86 + 35 - 121 <250.
Полный коэффициент использования = коэффициент использо- вания за счет вытеснения + коэффициент использования за счет вы-
полнения = 0,32 + 0,14 = 0,46 < 0,69.
Полный коэффициент использования 0,46 меньше предельного значения 0,69, которое дает теорема о верхней границе коэффициента использования, поэтому все четыре задачи удовлетворяют времен- ным ограничениям.
Чтобы выяснить, верно ли сказанное в отношении двух задач с периодом 100 мс, необходимо рассмотреть вытеснение и время вы- полнения на интервале протяженностью 100 мс:
–время выполнения обеих задач. Они рассматриваются вместе, так как имеют одинаковый период. Полное время выполнения со- ставляет 6 + 6 = 12 мс. Коэффициент использования ЦП равен 0,06 + 0,06 =0,12;
–время вытеснения более приоритетными задачами с периода- ми, меньшими 100 мс. Есть только одна такая задача – Интерфейс Вала, которая может вытеснить остальные задачи не более 10 раз на 100-миллисекундном интервале и потребит при этом 10 × 2 = 20 мс? Коэффициент использования за счет вытеснения равен 0,06;
–вытеснение более приоритетными задачами с большими пе- риодами. Единственная такая задача Интерфейс Ручки Круиз-
Контроля способна вытеснить любую из двух задач только один раз
изанять 6 мс. Коэффициент использования равен 0,06;
–время блокировки задачами с более низким приоритетом. Та- ких задач нет.
www.pdffactory.com
СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ |
292 |
Рис. 11.3. Система круиз-контроля и мониторинга
Сделаем вывод.
www.pdffactory.com