УДК 681.32
МЕТОДИКА ВЕРОЯТНОСТНОГО АНАЛИЗА НАБОРОВ ЗАДАЧ В ОДНОПРОЦЕССОРНЫХ СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ С ФИКСИРОВАННЫМИ ПРИОРИТЕТАМИ
В. П. Дашевский,
аспирант Санкт-Петербургский институт информатики и автоматизации РАН (СПИИРАН)
Предложена методика вероятностного анализа выполнимости периодических задач в системе реального времени. Методика позволяет гарантировать качество обслуживания каждой задачи в системе, где максимально возможная загрузка процессора превышает единицу, а средняя остается меньше единицы. Представленный алгоритм численного анализа является эффективным как в отношении машинного времени, так и в отношении требуемой оперативной памяти.
This paper describes probabilistic analysis of periodic real-time tasks with varying execution times. The analysis provides performance guaranties for the task sets with total maximum utilization higher than one while the average utilization remains less than one. Each task may me pre-empted by higher priority task and has deadline not grater than its period. Proposed algorithm is memory and time-efficient.
Введение
Системами реального времени (СРВ) принято считать такие системы, в которых наряду с логической правильностью вычислительного процесса необходимо обеспечивать также своевременность его протекания. При разработке и тестировании этих систем приходится учитывать не только функциональный, но и временной аспект.
В большинстве случаев процесс проектирования вычислительной системы реального времени начинается с абстрактного описания ее функциональных возможностей, указания ресурсных и временных ограничений. Затем весь спектр функциональных возможностей представляется в виде набора более простых задач, для выполнения которых выбираются процессорные элементы. В завершение для каждого процессорного элемента назначается дисциплина планирования, в соответствии с которой проводится анализ временных требований задач.
Во многих приложениях СРВ нарушение сроков выполнения задач может приводить к катастрофическим последствиям. По этой причине основные методики анализа систем реального времени, развитые в 1970-1980 годы, были ориентированы на наихудшее время выполнения программ (НВВП). Недостаток такого подхода заключается в том, что
время выполнения программ сравнительно редко приближается к наихудшему. В большинстве случаев оно остается существенно меньше, поэтому процессоры оказываются слабо загруженными. Кроме того, методы повышения производительности вычислительных систем, такие как кэширование данных, предсказание переходов, конвейерная обработка с неявным запретом прерываний, использование контроллеров прямого доступа в память, лишь увеличивают разрыв между средним и наихудшим временем выполнения. Таким образом, консервативные методики анализа с использованием лишь НВВП накладывают все большие ограничения на эффективность использования аппаратных средств.
В последние годы появилось много новых приложений СРВ, в которых нарушение сроков задач не приводит к заметным последствиям, пока вероятность таких нарушений остается меньше некоторого порога. Таковы, например, различные приложения мультимедийных и телекоммуникационных систем. Некоторые авторы отмечают, что анализ устойчивости в системах «чистого» управления также допускает редкое нарушение сроков без заметной потери управляемости. Указанные особенности создают предпосылки для развития методик вероятностного анализа СРВ, с помощью которых можно повысить эффективность использования
аппаратуры, а значит снизить затраты на оборудование.
Методы вероятностного анализа, развитые ранее, опираются на простые модельные законы распределения времени выполнения, такие как равномерный или экспоненциальный закон распределения. Более точные модели используют произвольные распределения, однако одной из основных трудностей при работе с ними является быстро растущая с числом задач сложность анализа.
В данной работе рассматривается методика вероятностного анализа набора задач для одного процессора, адаптированная для широко применяемой дисциплины планирования с фиксированными приоритетами задач. Законы распределения времени выполнения задач могут быть выбраны произвольно, но при некоторых предположениях анализ может быть еще более упрощен без существенной потери точности. Анализ является эффективным как в отношении машинного времени, так и в отношении требуемой оперативной памяти.
Практически во всех исследованиях, посвященных СРВ, каждая из задач решается системой многократно. В первую очередь это связано со спецификой применения СРВ в качестве подсистем сбора информации и управления. Для описания задач традиционно используются несколько параметров: период повторения запросов на решение задачи, относительный срок выполнения, время выполнения, время блокировки из-за доступа к общим данным. Разными авторами допускаются различные предположения относительно значений этих параметров.
Методики анализа систем с детерминированными параметрами времени выполнения, рассмотренные в работах [2, 5-10, 13-15, 17], основываются на предположении, что время выполнения задачи постоянно. В системах с жесткими требованиями на выполнение задач в срок приходится рассчитывать систему исходя из НВВП для каждой задачи. Чаще всего это приводит к выводу о перегрузке системы и невозможности ее работы в реальном времени, однако, если производительности процессора хватает для наихудшего случая, то система оказывается слабо загруженной в среднем, что приводит к выводу о плохой эффективности ее использования.
Авторы [16] предлагают пять различных алгоритмов планирования для апериодических задач. Используемая ими модель задач предполагает случайные времена возникновения запросов на выполнения задач и постоянные времена выполнения, оцененные исходя из НВВП.
В работе [1] рассмотрена система, в которой времена выполнения задач могут быть случайными. На основе работы [7] авторами разработана методика вероятностного анализа набора задач, с помощью которой можно оценить вероятность нарушения срока для каждой задачи. Однако вычислительная сложность предложенной методики оказывается довольно высокой, поэтому авторы прибегают к приближенным вычислениям, используя центральную предельную теорему. Использование
приближенных вычислений может приводить к завышенным оценкам вероятности выполнения задачи в срок, что делает проблематичным использование подобной методики для систем с жесткими требованиями. Авторами предложен также другой метод организации вычислений, при котором задачи с большим разбросом времени выполнения разбиваются на две подзадачи, первая из которых выполняется за время, не превышающее среднего времени выполнения исходной задачи, а вторая представляет собой случайно возникающий остаток ее выполнения. Первая подзадача планируется аналогично другим задачам с детерминированными характеристиками, а вторая ставится в очередь к спорадическому серверу. Показано, что с помощью подобных преобразований удается достигнуть более высокой эффективности использования процессоров, однако разделение далеко не всегда удается произвести на практике, что ограничивает применение этого метода.
В работе [11] авторы обобщают результаты классической работы [2] на случай задач со случайными временами выполнения. Каждая задача характеризуется периодом повторения запросов, функцией распределения времени выполнения, а также качеством обслуживания, представляющим собой необходимую вероятность выполнения задачи в срок. Помимо планирования задач система осуществляет контроль над их принятием в расписание, с помощью которого, во-первых, ни одна задача не использует больше процессорного времени, чем ей гарантировано, во-вторых, ни одна задача не принимается в расписание, если ее выполнение не может быть гарантировано. Подобный контроль обеспечивает защиту качества обслуживания задач с большим периодом (т. е. имеющих меньший приоритет в соответствии с RMS) от вытеснения задачами с меньшим периодом. Авторами предложен алгоритм анализа выполнимости набора задач при условии, что времена выполнения всех задач распределены равномерно. К сожалению, методика анализа не может быль легко обобщена на случай произвольного распределения времени выполнения задач.
Альтернативная методика анализа набора задач со случайным временем выполнения предложена в работе [3]. В ее основе также лежит анализ системы с детерминированными параметрами задач, развитый в работе [7]. Подобно работе [1] целью анализа является оценка нижней границы для вероятности выполнения задач в срок. Предлагаемая методика учитывает также влияние необходимости завершения предыдущих запросов на обработку текущего запроса, которое становится особенно заметным, когда средняя загрузка СРВ приближается к единице, а максимальная превосходит ее. Однако приводимые автором данные о сравнении результатов развитой методики с численным моделированием того же набора задач показывают, что она дает слишком заниженную оценку на вероятность выполнения задач в срок. Чем выше становится перегрузка системы, тем сильнее отличаются результаты анализа от результатов
моделирования. Из результатов моделирования, полученных автором, видно, что при стохастическом времени выполнения программ искомая вероятность выполнения в срок очень слабо зависит от постоянства фазовых соотношений между запросами на решение различных задач. Автором предложено обобщение методики анализа на случаи задач, в алгоритмах которых присутствуют непрерываемые критические секции, а также на случаи распределенных систем.
Работа [12] является развитием [1]. Однако авторы рассматривают вероятность гарантирования не отдельных задач, а всего набора в целом. Для этого им приходится рассматривать все возможные сочетания времен выполнения задач, в результате чего сложность анализа не позволяет исследовать большое число задач.
В работе [4] показано, что редкое нарушение сроков в задачах «чистого» управления не означает потери устойчивости в управлении, хотя традиционно многие задачи управления (в особенности опасными или дорогостоящими объектами) относят к задачам жесткого реального времени. Этот результат показывает, что надежность системы управления в реальном времени связана с жесткостью требований реального времени лишь косвенно, и вероятностный анализ может быть применен к системам с жесткими требованиями.
Анализ, приводимый в данной работе, является развитием методики, изложенной в работе [1]. По сравнению с [1] был улучшен алгоритм проверки контрольных точек: уменьшено число проверяемых точек, в которых приходится вычислять свертки, а также уменьшена сложность вычисления самих сверток. Эти упрощения позволяют проводить анализ всей системы задач, не прибегая к центральной предельной теореме, благодаря которой авторам [1] удается сократить объем вычислений, однако при этом теряются гарантии того, что полученная в результате анализа оценка вероятности является оценкой снизу.
Формулировка задачи вероятностного анализа
Для простоты изложения ограничимся рассмотрением одного процессора. Методику можно применить и в случае многопроцессорной системы, если предварительно задачи распределить по процессорам, а связи между ними специфицировать таким образом, что можно провести анализ для каждого процессора отдельно.
Предположения относительно системы задач. В качестве модели задач используется традиционная для большинства коммерческих операционных систем реального времени модель периодических задач с фиксированными приоритетами, удовлетворяющих следующим предположениям:
1) запросы на решение задач поступают в систему периодически; относительный срок, за который запросы должны быть обработаны, не превосходит периода следования запросов;
2) время выполнения задачи является случайной величиной, распределенной по некоторому, заранее выбранному закону; при этом максимальное время выполнения не превосходит периода повторения запросов;
3) времена выполнения различных задач являются статистически независимыми случайными величинами (в отличие от времен отклика);
4) обработка запроса на выполнение задачи прекращается принудительным образом, если она не укладывается в назначенный срок;
5) задача с более высоким приоритетом вытесняет менее приоритетную, не дожидаясь завершения ее выполнения;
6) время переключения контекста процессора между задачами пренебрежимо мало по сравнению с характерными временами их выполнения;
7) для каждой задачи множество задач, способных ее вытеснить, задается разработчиком системы при проектировании и не изменяется во время функционирования системы;
8) средняя загрузка процессора всеми задачами не превосходит единицы. Однако в силу случайного характера, а также большого разброса значений времени выполнения максимальная загрузка может быть больше единицы.
Поскольку в каждом периоде повторения время вычисления задачи меняется случайным образом, то часть параметров каждой задачи будет зависеть также от номера периода. В дальнейшем будем описывать у'-й запрос И/,-у на решение /'-й задачи И/у следующими параметрами:
71 — период повторения запросов на решение задачи;
О, —относительный срок выполнения; ф/ — приоритет задачи;
г,- у — момент поступления запроса на решение задачи;
с/ у — время выполнения запроса (без вытеснения другими задачами);
сУ/ у — срок завершения выполнения запроса;
Я/; — момент завершения выполнения запроса; с, — среднее время выполнения запроса; с? — максимальное время выполнения запроса; с,7 — минимальное время выполнения запроса; й\ — средняя загрузка процессора данной задачей;
и! — максимальная загрузка процессора данной задачей;
и]~ — минимальная загрузка процессора данной задачей;
fi{x) — функция плотности распределения времени выполнения;
р, — вероятность выполнения запроса в срок. Приведенные выше условия в принятых обозначениях можно записать следующим образом:
С/, у < О/ < Т/,
П,} =Пл +и~Щ',
6/.у = п,) + °/;
сі = !іт т Хси;
у->- У *=1 с/- = тах С/ у;
СГ = ГПІП С;
'■7
і .
- с и,---,
- СГ
Ч;
Ч'
_ /V
5)й/<1;
/=1
N
и+=±и1>Ь
/=1
р, = Р(Я;,у <С//,у).
В добавление к принятым обозначениям будем также считать, что задачи пронумерованы в соответствии с их приоритетами:
/ < / => Ф/ > Фу • (1)
Строго говоря, можно не накладывать ограничения на время выполнения задачи в предположении 2, однако естественно предположить, что каждая отдельно взятая задача не приводит к перегрузке процессора. Таким образом, целью анализа, в первую очередь, является определение частоты нарушения сроков при совместном выполнении задач, т. е. при условии, когда только случайное увеличение времени выполнения сразу нескольких задач в совокупности способно привести к перегрузке процессора.
Формулировка задачи вероятностного анализа СРВ. Задача формулируется следующим образом:
Для заданного набора независимых задач И/,-, /'= 1, ..., /V с указанными вероятностными характеристиками, задаваемыми с помощью функций плотности распределения времени выполнения, требуется определить вероятность рI завершения задачи 1/1до назначенного ей срока О,. Если полученная вероятность окажется не меньше некоторого заранее заданного значения, то будем считать, что система способна справляться с решением данной задачи в реальном времени.
Сложность проведения анализа подобного рода заключается, как и в случае с детерминированными временами выполнения, в том, что каждая задача может вытесняться в процессе решения более приоритетными задачами, что приводит к увеличению времени отклика. Чем больше становится время отклика, тем большее число задач с более высоким приоритетом могут вытеснить текущую задачу, что приводит к еще большему увеличению времени отклика. Влияние этой положительной связи становится еще более трудно прогнозируе-
мым, если время выполнения задачи может изменяться в широких пределах. В такой ситуации можно ожидать, что вероятностный анализ способен дать лучшие результаты, поскольку наиболее вероятное время отклика существенно отличается от максимально возможного.
Вероятностный анализ времени выполнения задач
Профили времени выполнения и операции с ними. Случайный характер времени выполнения задачи может быть описан с помощью функции распределения времени выполнения. По определению функция распределения времени выполнения задачи в точкех есть вероятность того,что время выполнения с не превзойдет значения х:
Р(х) = Р(с<х).
Функцию плотности распределения
т = р'(х)
для краткости называют также профилем времени выполнения задачи [18]. Поскольку время выполнения всегда неотрицательно, то функции распределения определены на положительной полуоси.
В общем случае каждую задачу можно представить совокупностью некоторых элементарных выполняемых блоков, каждый из которых описывается своим профилем времени выполнения. Однако в данной статье ограничимся рассмотрением всей задачи как одного неделимого блока.
Для анализа набора задач необходимо уметь находить профиль суммарного времени выполнения двух и более задач. В общем случае задача является довольно трудной, поскольку суммарное время выполнения нескольких задач зависит от их порядка, количества вытеснений более приоритетными задачами и использования общих данных. Тем не менее в практике достаточно часто встречаются примеры слабо зависимых задач. В данном случае будем исходить из предположения 3 (см. ранее).
Основной операцией над профилями времени выполнения, применяемой для анализа совокупностей независимых задач, является операция свертки
X
h{x) = fA{x)®f2{x) = |/:1(у)/г2(х-у)сУу1 (2)
о
с помощью которой можно получить профиль суммы времен выполнения двух задач. Важными свойствами сверток являются:
• коммутативность — ^ ® ® ^1;
• ассоциативность — (^ О^)®^ = Ь ® $2 ®?з)>
• дистрибутивность — (^ + /2) ® /3 = {Ц ® ^з) +
+ ^2 ® /3);
Для дальнейшего изложения полезен также профиль нулевого времени выполнения, или нулевой профиль выполнения, который будем обозначать
8(х). Основное свойство нулевого профиля выполнения состоит в том, что для любого профиля f[x) f(x)® 5(х) = f(x).
В машинном представлении профиль времени выполнения описывается дискретным образом с помощью массива чисел:
ак = P(h(k -1) < с < /7/с), k =
где h — шаг дискретизации; М — общее количество дискрет, выбираемое таким образом, чтобы покрыть исследуемый участок временной оси для каждой задачи.
Вероятность выполнения задачи за время х с дискретно заданным профилем ак можно оценить снизу как
F(x)> %ак.
к=О
(3)
Из выражения (3), в частности, следует, что для оценки снизу вероятности выполнения задачи
О/
достаточно массива размером
h
+ 1.
Для вычисления свертки дискретно заданных профилей ^2, к интеграл в выражении (2) заменяется суммой:
к Ь,к = 2Х/ 'Ъ,к-1 ■
1=0
Нулевой профиль выполнения в дискретном случае определяется как
1, к = 0
О, /с > 0.
так что для любого дискретного профиля ^ их свертка
(§ ® ()к = ^ 8/ fk_| = 50 ^ ^ 8/ fk_| = fk
1=0 1=1
удовлетворяет определению нулевого профиля выполнения.
Задание профиля времени выполнения для всех задач требует значительного количества памяти, а также приводит к большому времени вычисления сверток [1]. Однако подобное усложнение вычислений не приводит к существенному повышению их точности. Точное измерение функции плотности распределения на практике представляет собой довольно сложную задачу, хотя в большинстве случаев разработчика интересует не столько точное значение, сколько порядок величины вероятности превышения срока.
Чтобы упростить задачу вычисления сверток над дискретными профилями, используем следующие два предположения.
1. Профили многих реальных алгоритмов имеют явно выраженный линейчатый характер, благодаря чему среди чисел, задающих дискретный про-
филь, сравнительно небольшое количество оказываются отличными от нуля. Естественно в такой ситуации задавать профиль не массивом чисел, а массивом пар вида (/с,-, р,), где /с,— номер дискрета, соответствующего времени выполнения hkh а р,— вероятность наблюдения этого времени выполнения. Количество таких пар соответствует количеству различных ветвлений программы.
2. Профили времени выполнения, для которых максимальное время выполнения существенно отличается от среднего, должны обладать быстро убывающей функцией f(x). В таком случае без существенной потери точности ее можно заменить дискретным профилем, который также описывается набором пар вида (/с„ р,). Величина р, представляет собой вероятность P(hkj_-\ < х < hkj). В этом случае количество пар также может быть сделано существенно меньше, чем количество дискрет, необходимое для описания произвольного профиля.
С помощью этих упрощений можно добиться сокращения объема памяти, необходимого для хранения профиля времени выполнения каждой задачи W). Вычисление свертки в таком случае представляет собой операцию над двумя профилями, первый из которых задан дискретным образом в виде массива чисел ат, а второй задан парами чисел вида (/с,-, р,), / = 1, п:
п ат = ^ ат-к. Pi •
/=1
Таким образом, вычисление свертки в данном случае требует меньшего количества операций, чем над двумя дискретными профилями. Для анализа системы задач достаточно одного массива чисел, описывающего один дискретный профиль, к которому поочередно добавляются профили отдельных задач. Упрощенные профили позволяют сохранить соотношение (3) для оценки вероятности времени выполнения задачи, вытесняемой другими задачами.
Алгоритм вероятностного анализа задачи. Итак, задача анализа состоит в том, чтобы оценить снизу вероятность выполнения запроса И/, у в срок. Используемая для этого методика базируется на расчете необходимого времени, развитом в работе [7]. Для оценки вероятности снизу мы будем рассматривать критический участок, понятие которого введено в работе [2]. Предполагается, что критический участок начинается тогда, когда запросы на все задачи приходят одновременно. Без потери общности можно считать, что начало критического участка совпадает с началом отсчета на временной оси.
Для оценки вероятности удобно воспользоваться вспомогательной функцией Wj(t), которая ограничивает время отклика системы сверху:
/-1 sk(t) wi(t) = Ci,j + X 2°kJ к=Л /=1
(4)
где
sk(t) =
t
Tk
представляет собой наихудшую оценку количества запросов задачи \Л/к! которые будут приняты в системе за время [г,-у, г,- у + ?) при любом ? > 0. Поскольку время выполнения каждого запроса является случайной величиной, то приходится явно суммировать зк(Ц случайных величин ск Первая сумма в выражении (4), в соответствии с предположением (1), представляет собой суммирование времен всех более приоритетных задач, а вторая учитывает многократные запросы на выполнение одной задачи.
Завершение выполнения запроса И/, у происходит тогда, когда время, прошедшее с момента его поступления, становится не меньше необходимого времени
и/;(Г) < Г
для некоторого t из отрезка [г, у, г/ ; + О,]. Поскольку в зависимости от t количество слагаемых в выражении (4) меняется, то естественно разбить этот отрезок на участки, в которых функции ке {1, ..., /}сохраняют постоянное значение. Границами этих участков являются, очевидно, точки временной оси, принимающие значения вида
1-Тк, / = 0,1, 2, ...,
£і
Тк
; к = 0, 1, ..., /'. (5)
Обозначим множество всех участков с постоянными 5^(0 через С/. Множество их границ, описываемое выражением (5), с включенной точкой О, обозначим В;\
Di
Тк
; к = 0,1,..., /}.
Зная функции распределения отдельных задач и их количество на каждом участке, можно построить функцию распределения величины и/ДО, вычислив их свертку.
Обозначим через Е(х) вероятность того, что \м^) <х. На каждом участке /? е С, наибольшее значение Е{х) достигается для наибольшего х е /7, которое соответствует завершению участка постоянства 5^(0 в момент прихода очередного запроса на решение одной из задач с более высоким приоритетом. Дискретный характер изменения количества запросов во времени приводит к разрыву первого рода для Е(х) на границах участков. Поскольку начало участка/7 связано с появлением нового запроса, то значение Е(х) справа от разрыва всегда оказывается меньше, чем слева. В общем случае значение Е(х) на правом конце участка /7 может быть как больше, так и меньше значения Е(х) на правом конце предыдущего участка (примыкающего к /7 слева). Это связано с тем, в каком соотношении находится длина участка/7 и среднее время выполнения одного или, возможно, нескольких запросов, добавившихся в его начале. Если среднее время обработки нового запроса оказывается меньше, чем длина участка/7, то, в среднем, у системы появляется дополнительное время для выполнения запроса
задачи И/,-, и тогда вероятность выполнения задачи W,- к концу участка h становится больше. В противном случае появление новых запросов только уменьшает время, которое остается системе для выполнения задачи Wh и тогда изменение Е(х) оказывается отрицательным.
Для того чтобы обработка запроса И/, у на критическом участке была завершена в срок, достаточно, чтобы она завершилась на любом из участков/? е С,. Поэтому можно оценить вероятность выполнения запроса снизу:
р, > max Е(х). (6)
Хг: /?, Сj
Поскольку наибольшее значение Е(х), х е h достигается на правой границе участка h, то выражение (6) можно записать в виде
Pi > maxE(x -0). (7)
ХЕ В j
Чтобы упростить вычислительную сложность анализа, перебор значений множества В, удобно вести в порядке возрастания. В этом случае вычисление сверток для функции распределения Е(х) можно производить последовательно, выполняя по одной операции свертки на каждую точку из В,. Алгоритм вероятностного анализа представлен на
Входные данные
Набор задач S={l/l/,}, их периоды Т-„ относительные сроки Dh функции плотности распределения f,(x) и приоритеты ф„ /'= 1, 2......N.
Выходные данные
Нижняя оценка р, вероятности того, что запрос на решение задачи W, будет выполнен в срок, в соответствии с формулой (7)
Алгоритм
for each Wh 1 < i < N do Qi(x) = 5(x)
Pi =0 X = 0 tk= 0, 1 < к < i while X < Dj do x
P = Jgf/(x)cfx о
Pi = max {Pi, p)
L = {m: tm = min tk}
1 <k<i
I: ф/ = max фт
me L
x -t,
Qi(x) = gi(x)®f/{x) tt=ti+ T, end while
end for
■ Рис. 1. Алгоритм вероятностного анализа набора задач
рис. 1. Общее количество вычислений сверток можно оценить по формуле
= 1
/с=1 I Тк
Di
(8)
Оценка сложности алгоритма. Основной вклад в сложность алгоритма вносит вычисление сверток и вычисление вероятности Р(с<х) для дискретного профиля, полученного в очередной контрольной точке из множества В,. Общее количество контрольных точек определяется формулой (8).
В общем случае вычислительная сложность алгоритма оценивается
С= 2сх,
хе В,
где Сх — сложность анализа в контрольной точкех. В каждой точкех приходится вычислять вероятность р„ а также очередную свертку для д,(х). Значение С можно оценить сверху так:
С < |В/| • max Сх < |В,-|(СрГ + Cconv),
Х6 В;
где Срп Cconv — оценки сверху для сложности вычисления вероятности и свертки, соответственно.
Сложность вычисления вероятности можно оценить сверху величиной
Cpr = ni Р add ■
Сложность вычисления свертки можно оценить сверху величиной
^conv ~ Mj Л/ {padd + Рmul)-
В приведенных формулахМ, обозначено количество пар чисел, задающих упрощенный профиль для задачи l/l/(; padd — относительный вес сложности операции сложения; рти/ — относительный вес
h
личество дискрет в профиле выполнения задачи Wf, h — шаг дискретизации профиля выполнения в машинном представлении.
Таким образом, общая сложность вероятностного анализа для задачи И/; оценивается сверху выражением
сложности операции умножения; л,-
ко-
Л/ (М/ рmui + (Mj + 1) padd) ^
/с=1
£l
Ъс
В данном случае сложность линейно зависит от количества дискрет в профиле д,(х). В случае, когда для задания профиля задачи И/, используется полный дискретный профиль, задаваемый массивом, сложность свертки возрастает до
"| 2
Cconv ~ ^ л/ (Рти1 + Рadd)>
и общая сложность анализа оценивается сверху формулой
В таком случае сложность зависит от количества дискрет в профиле д,(х) квадратичным образом.
Объем памяти, необходимый для проведения анализа, можно оценить следующим образом. Для вычисления сверток требуется память для хранения одного исходного дискретного профиля и одного результирующего дискретного профиля, который впоследствии заменяет исходный. Для хранения упрощенных профилей каждой задачи требуется М-, пар чисел, первое из которых целое, а второе—вещественное. Таким образом, объем памяти, необходимой для анализа N задач, равен
N
2-^геаI . + X ^'Шедег +2геа1)’
/=1..М ,=1
гдеZ/nfeger, 1геа! — объем памяти, необходимый для хранения целого и вещественного чисел соответственно.
В случае, когда для задания профиля задачи И/, используется полный дискретный профиль, задаваемый массивом, необходимый объем памяти возрастает до
N
2 2геа! ,=тах^Л/ + £л,- zrea/.
Сравнение результатов вероятностного анализа с результатами численного моделирования
С помощью методики вероятностного анализа можно получить оценку снизу для вероятности выполнения задачи в срок. Поскольку методика основана на рассмотрении критического участка, как это принято при анализе СРВ с детерминированными параметрами задач, то вероятность р, для каждой задачи рассчитывается исходя из наихудшего числа ее вытеснений более приоритетными задачами. В действительности же наихудшее число вытеснений реализуется не для каждого запроса на решение задачи, поэтому доля запросов, обработанных в срок, оказывается больше значения р/. Тем не менее можно ожидать, что дополнения этих значений до единицы окажутся одного порядка.
Для оценки точности методики вероятностного анализа была реализована программа прямого моделирования набора задач, которая в течение длительного времени набирает статистику обработки в срок периодически поступающих в систему запросов. В качестве примера для сравнения был использован набор задач, характеристики которого приведены в табл. 1. Все задачи в этом наборе обладали функциями распределения вида
Таблица 1. Набор задач для сравнения
/' Ті О/ Сі С/ С/+ и/ и/
1 100,0 100,0 10,0 19,9889 100,0 0,1000 0,1999 1,0000
2 150,0 150,0 12,0 23,9867 120,0 0,0800 0,1599 0,8000
3 200,0 200,0 12,0 23,9867 120,0 0,0600 0,1199 0,6000
4 600,0 600,0 20,0 39,9778 200,0 0,0333 0,0666 0,3333
Всего: 0,2733 0,5464 2,7333
Таблица 2. Результаты численного эксперимента
Вероятностный анализ Прямое моделирование
/' Р/ Доля запросов, выполненных в срок
1 1,0000000 1,00000000 + 0,0000000
2 0,9989125 0,99959300 + 0,0000090
3 0,9954908 0,99898873 + 0,0000164
4 0,9999913 0,99999588 + 0,0000015
О,
1 - ехр -
X-с
1-ехр 1,
с -с
X < с ,
С < X <с
X > с .
Результаты обеих методик, представленные в табл. 2, позволяют сделать следующие выводы:
• вероятность, полученная с помощью рассматриваемой методики, действительно не больше значения, полученного в результате численного эксперимента;
• вероятность, полученная с помощью рассматриваемой методики, по порядку величины совпадает с долей успешно обработанных запросов, полученной с помощью численного моделирования; наблюдаемые отличия (в особенности у задач 2 и 3) связаны с тем, что анализируется лишь критический участок, из-за чего вероятность занижается;
• вероятность решения в срок задачи с меньшим приоритетом может быть больше вероятности решения в срок задачи с большим приоритетом, как в случае задач 3 и 4; методика вероятно-
стного анализа позволяет замечать подобные особенности.
Таким образом, методика вероятностного анализа действительно позволяет с приемлемой точностью оценить вероятность выполнения задач.
Заключение
В статье рассмотрена методика вероятностного анализа совокупности периодических задач, выполняемых на одном процессоре в СРВ. С ее помощью можно получить нижнюю оценку для вероятности обработки в срок каждой задачи. Вероятностное описание позволяет расширить область применения традиционных дисциплин планирования на случай, когда максимальная загрузка СРВ становится больше единицы, и методики анализа, развитые ранее для систем с детерминированными параметрами, становятся неприменимы.
Наряду с изложением алгоритма анализа набора задач получена оценка его сложности, а также оценка объема оперативной памяти, требуемой для хранения данных. Сравнение результатов работы алгоритма с численным моделированием показывает, что оценка вероятности оказывается близкой к численному эксперименту.
Литература у
1. Tia Т.-S., Deng Z., Shankar М., Storch М., Sun J., Wu L.-C., Lui J.W.-S. Probabilistic Performance Guarantee for Real-Time Tasks with Varying Computation Times // Proceedings of the Real-Time Technology and Applications Symposium. — Chicago, Illinois. — May 1995. — IEEE. — P. 164-173.
2. Lui C.L. and Layland J. W. Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment// Journal of the ACM. — 1973. — P. 46-61.
3. Gardner M. Probabilistic Analysis and Scheduling of Critical Soft Real-Time Systems // PhD Dissertation. — University of Illinois at Urbana-Champain. — 1999.
4. Cervin A. Analyzing the Effects of Missed Deadlines in Control Systems//Real-Time Graduate Student Conference. — Lund, March 8-9, 2001.
http: //www.artes.uu.se/events/gsconf01/ papers/cervin.pdf.
5. Audsley N. C. Deadline Monotonic Scheduling. YCS.146// Computer Science, Department, University of York, September 1990.
6. Audsley N. C., Burns A., Richardson M. F., Wel-lings A. J. Hard Real-Time Scheduling: The Deadline-Monotonic Approach Proceedings 8th IEEE Workshop on Real-Time Operating Systems and Software. — Atlanta, USA, 15-17 May 1991.
7. Lehoczky J., Sha L. and Ding Y. The Rate-Mono-tonic Scheduling Algorithm: Exact Characterization and Average Case Behavior//Proceedings IEEE Real-Time Systems Symposium, Santa Monica, California. IEEE Computer Society Press. — 5-7 December 1989. — P. 166-171.
8. Burns A. Preemptive Priority Based Scheduling: an Appropriate Engineering Approach//Advances in Real-Time Systems, Prentice Hall. — 1995. — P. 225-248.
9. Sha L., Rajkumar R. and Lehoczky J. Priority Inheritance Protocols: An Approach to Real-Time Syn-
chronization//IEEE Transactions on Computers. — 39(9): 1175-1185. — September 1990.
10. Sha L., Rajkumar R., Lehoczky J., Ramamritham K. Mode Change Protocols for Priority-Driven Preemptive Scheduling//CMU/SEI-88-TR-34. — Software Engineering Institute. — November 1988.
11. Atlas A. K. and Bestavros A. Statistical rate monotonic scheduling//Proceedings of the 19th Real-Time System Symposium. — December 1998. — P. 123-132.
12. Hu Z. S., Zhou T. and Sha E. H.-M. Estimating probabilistic timing performance for real-time embedded systems // IEEE Transactions on Very Large Scale Integration (VLSI) Systems. — 9(6): 833-844. — December 2001.
13. Audsley N. C., Burns A., Richardson M. F., Tin-dell K. W. and Wellings A. J. Applying New Scheduling Theory to Static Priority Pre-emptive Scheduling // Software Engineering Journal. — 8(5): 284-292. — September 1993.
14. Audsley N. C., Burns A., Davies R. I., Tindell K. W. and Wellings A. J. Fixed Priority Pre-emptive Scheduling: An Historical Perspective//Journal of Real-Time Systems. — Vol. 8. — 1995. — P. 173-198.
15. Stankovic J. A., Spuri M., Di Natale M., Butazzo G. Implications of Classical Scheduling Results for Real-Time Systems//IEEE Computer. — June 1995. — P. 16-25.
16. Spuri M., Butazzo G. Scheduling Aperiodic Tasks in Dynamic Priority Systems // Journal of Real-Time Systems. — Vol. 10. — N 2. — 1996. — P. 1979-2012.
17. Joseph M. and Pandya P. Finding response times in a real-time system//The Computer Journal — British Computer Society. — 29(5): 390-395. — October 1986.
18. Bernat G., Colin A., Petters S. WCET Analysis of Probabilistic Hard Real-Time Systems//The 23rd IEEE International Real-Time Systems Symposium. — December 3-5. — 2002. — Austin, Texas (USA).