Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все лекции по системам реального времени.pdf
Скачиваний:
251
Добавлен:
02.05.2014
Размер:
8.11 Mб
Скачать

СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

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