ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА
УДК 681.3
В. В. Никифоров, В. И. Шкиртиль
ОЦЕНКА ВРЕМЕНИ ОТКЛИКА ПРИКЛАДНЫХ ЗАДАЧ В СИСТЕМАХ РЕАЛЬНОГО ВРЕМЕНИ С МНОГОЯДЕРНЫМИ ПРОЦЕССОРАМИ
Представлен подход к оценке выполнимости прикладных программных систем жесткого реального времени, реализуемых вычислительными комплексами на базе многоядерных процессоров. Рассматривается класс вычислительных моделей систем со статическими приоритетами асинхронных вытесняемых задач, с миграцией исполняемых заданий между ядрами процессора. Для рассматриваемого класса моделей предложен метод оценки времени отклика составляющих систему прикладных задач.
Ключевые слова: выполнимость задач, системы жесткого реального времени, критические сценарии системных событий, время отклика прикладных задач.
Введение. Требования надежного, предсказуемого поведения систем реального времени (СРВ), эффективного использования аппаратных средств обеспечиваются, в частности, использованием рациональных методов планирования и анализа выполнимости программных приложений. В 1990-х гг. начались интенсивные исследования в области методов построения СРВ на базе симметричных и асимметричных многопроцессорных архитектур. Значительная часть результатов, полученных для моделей симметричных однопроцессорных систем, непосредственно применима и к системам на базе современных многоядерных процессоров. Это относится и к теоретическим результатам, полученным ранее — до появления возможности использовать многоядерные процессоры для построения СРВ. Актуальность этих теоретических результатов существенно возрастает в связи с расширением производства аппаратных средств с многоядерными процессорами. В настоящей работе рассматриваются результаты исследований в области СРВ на многоядерных процессорах и для случаев, когда в первоисточниках упоминаются только симметричные многопроцессорные системы.
Ряд положений, определяющих подходы к построению СРВ на базе классических однопроцессорных архитектур, неприменим к системам, строящимся на базе многоядерных процессоров. Методы планирования, оптимальные в случае однопроцессорных СРВ, не являются таковыми для систем на многоядерных процессорах [1]. Сценарии событий, являющиеся критическими для однопроцессорных СРВ, перестают быть таковыми в случае симметричных систем [2]. Тем не менее результаты разработки методов построения СРВ на многоядерных процессорах в определенном смысле повторяют соответствующие результаты для классических однопроцессорных систем. Это относится к вычислительным моделям программных приложений СРВ различных типов, к методам оценки выполнимости.
Вычислительные модели программных приложений СРВ. Ряд простейших разновидностей программных приложений СРВ представляется вычислительными моделями, отвечающими следующим условиям.
1. Система строится в виде множества задач т^ т2,..., тп; межзадачные информационные связи отсутствуют, в этом смысле задачи являются независимыми.
2. В общем случае каждая из задач тг- исполняется многократно, каждое исполнение задачи тг- называется заданием типа тг-. Таким образом, каждой задаче соответствует последовательность заданий соответствующего типа — задания 1тг-, 2тг-, ..., ¿тг- , ..., порождаемые в моменты времени ^(¿Тг) и завершаемые в моменты времени 4п<1(/Тг). Интервал времени, ограниченный моментами ^(/Тг) и 4па(/Т;), является интервалом существования задания ¿тг. Для каждой задачи тг определяется константа Тг, называемая периодом задачи тг. Величина Тг ограничивает снизу длину интервала времени (^(/Тг), ^О+Л)) между моментами активизации задачи тг (моментами порождения однотипных заданий / и 7+1тг), т.е. Тг < | ¿ьеё(/Тг) - ¿Ьеё(ктг)| для всех / тк.
3. На протяжении интервала своего существования задание ¿тг расходует процессорное время объемом ¿сг. Для различных однотипных заданий значения¿сг и ксг могут не совпадать. Еще один параметр каждой из задач тг — нагрузка Сг. Величина Сг представляет оценку предельного объема процессорного времени, требуемого для выполнения заданий типа тг, т.е. Сг > тах{ 1сг , 2с , ... }.
4. Задание ¿тг считается действующим в рамках интервала (¿ьеё(/Тг), 4^0%)) своего существования. Длина интервала (¿Ьеё(/Т;), 4па(/Тг)) называется временем отклика задания ¿тг. Интервалы существования заданий могут пересекаться, т.е. в конкретный момент времени I несколько заданий могут оказаться действующими. В каждый момент времени состав действующих заданий определяется предшествующим сценарием системных событий.
Если в одноядерной системе в момент времени I имеется непустое множество действующих заданий, то лишь одно из них ¿тг (текущее задание) выполняется процессором, остальные действующие задания находятся в состоянии „ожидание ресурса процессора" (далее — состояние ожидания). Если в момент времени I действующих заданий нет, то процессор простаивает.
В т-ядерной системе до т действующих заданий могут находиться в состоянии „текущее задание". Если число п действующих заданий не превосходит т, то все они находятся в состоянии „текущее задание", т.е. выполняются выделенными им ядрами процессора (т - п ядер процессора простаивают). Если т < п, то п - т действующих заданий находятся в состоянии ожидания. При т < п действующие задания конкурируют за предоставление ресурса процессора. В этом случае действующие задания оказывают взаимное влияние на время отклика конкурентов (так называемая интерференция заданий). В результате такой интерференции для различных однотипных заданий значения /гг и кГг могут не совпадать даже при ¿сг = с Максимальное значение времени отклика однотипных заданий Яг =тах{ 1гг , 2гг , ... } называется временем отклика задачи тг.
5. Для каждой задачи реального времени тг указывается предельно допустимая величина Дг времени отклика. Это означает, что система должна быть реализована таким образом, чтобы тах{ 1гг , 2гг , ... }< Д-.
Наряду с основным набором параметров задач Ти Сг, Дг при анализе вычислительных моделей приложений широко используются значения производных параметров — в частности, значения плотности нагрузки и(тг) = Сг /Д- на процессор от каждой из задач, суммарная
п
плотность нагрузки на процессор от всех задач приложения и = ^ и (т-) .
г=1
Класс A вычислительных моделей, отвечающий перечисленным условиям, соответствует системам с независимыми асинхронными задачами. Для жестких СРВ нарушение крайних сроков выполнения задач недопустимо (например, может повлечь значительные материальные потери или человеческие жертвы). Для мягких СРВ подобные нарушения могут рассматриваться как допустимые, но ведущие к снижению качества работы системы.
В классе A вычислительных моделей рассматриваются три подкласса.
Ai. Приложения с буферизацией однотипных заданий — для части (или для всех) задач таких приложений допускается превышение величины времени отклика относительно периода задачи (Д- > T).
A2. Приложения без буферизации заданий (Д; = T).
A3. Приложения с укороченными сроками выполнения заданий (Д; < T).
Дисциплины планирования. Порядок предоставления процессорного времени действующим заданиям определяется установленной дисциплиной планирования. Любая дисциплина планирования, применяемая для реализации системы, может быть задана определением способа назначения приоритетов заданий. Различаются две разновидности дисциплин — планирование со статическими и динамическими приоритетами.
Статические приоритеты задач устанавливаются в ходе разработки системы: каждой задаче Т; (тем самым всем заданиям типа т;) назначается фиксированное значение приоритета. Примеры планирования со статическими приоритетами — планирование, монотонное по периодам (RM — rate monotonie, приоритеты задач возрастают в порядке уменьшения их периодов), и планирование, монотонное по срокам (DM — deadline monotonie, приоритеты задач возрастают в порядке уменьшения предельных сроков их выполнения).
При использовании дисциплин планирования с динамическими приоритетами значения приоритетов заданий определяются в ходе работы системы в зависимости от сценария системных событий. К наиболее широко используемым дисциплинам планирования с динамическими приоритетами относится планирование по моментам завершения заданий (EDF — earliest deadline first, приоритеты действующих заданий 7т; устанавливаются в порядке значений tbeg(jTi)+Di крайних сроков их завершения).
В большинстве СРВ применяется принцип вытеснения: если появляется задание jT; с приоритетом, более высоким, чем приоритет текущего задания, то низкоприоритетное задание переводится в состояние ожидания — оно вытесняется заданием jT;, которое становится текущим.
Выполнимость задач и приложений. Для фиксированной модели приложения и определенной дисциплины планирования можно ставить вопрос о выполнимости отдельных задач и приложения в целом. Задача т;- считается выполнимой при использовании выбранной дисциплины планирования, если для любых сценариев системных событий гарантируется своевременность завершения всех задний типа Т;-. Приложение считается выполнимым, если выполнимы все составляющие его задачи. Использование методов проверки выполнимости задач и приложений — один из важнейших этапов разработки жестких СРВ. Один из таких методов — использование UB-теста
U< UB(n) = n(2-n - 1), (1)
применяемого в качестве средства проверки выполнимости приложений для одноядерных процессоров: в [3] показано, что при использовании RM-дисциплины планирования с вытеснением положительный результат UB-теста гарантирует выполнимость приложений из подкласса A2.
При реализации приложений подкласса A3 одноядерными процессорами обычно используется DM планирование с вытеснением. В подклассе A3 DM-дисциплина является оптимальной в том смысле, что если приложение подкласса A3 невыполнимо при использовании DM-планирования, то оно невыполнимо и при использовании любой другой дисциплины
планирования. Для проверки выполнимости приложений подкласса A3 вычисляются оценки Ri значений времени отклика каждой из задач ть выражаемые рекуррентным соотношением
R = C + Д Ri/Tj 1 Cj, (2)
J <i
где Гx 1 — сверху к х целое число. Индексы задач упорядочены по значениям приоритетов: наиболее приоритетная из задач обозначается символом ti. Вычислительные модели подкласса A2 являются подмножеством моделей подкласса A3, поэтому соотношение (2) может использоваться и для проверки выполнимости приложений подкласса A2.
Реализация СРВ многоядерными процессорами. Наличие нескольких ядер ставит вопрос о выборе подхода к распределению задач (и заданий) по ядрам процессора. Вариантом решения этого вопроса является статическое распределение задач по ядрам: определяются группы смежных задач; каждая группа приписывается отдельному ядру, в рамках отдельного ядра планирование заданий и оценка выполнимости производятся методами, разработанными для одноядерных процессоров. Более гибкий способ реализации СРВ на базе многоядерных процессоров предполагает динамическое распределение текущих заданий по ядрам процессора. При этом ядро, выделенное текущему заданию jTi, остается в распоряжении jTi до тех пор, пока оно не будет вытеснено более приоритетным заданием. Вытесненное задание ожидает момента освобождения любого из ядер процессора — таким образом, при возобновлении выполнения задания jTi оно может занимать уже не то ядро, которым обслуживалось до момента вытеснения. В этом смысле каждое из действующих заданий в рамках интервала своего существования может мигрировать между различными ядрами процессора.
Снятие ограничений, накладываемых статической привязкой задач к ядрам процессора, открывает возможность более эффективного использования вычислительных ресурсов. Чтобы в полной мере использовать эту возможность, необходимо определить для систем с миграцией эффективные дисциплины планирования, методы оценки выполнимости задач и приложений.
Между тем оказывается, что ряд положений, определяющих подходы к построению СРВ на базе одноядерных процессоров, теряет силу при переходе к многоядерным процессорам. Например, дисциплины планирования EDF и RM, оптимальные в случае одноядерных процессоров, перестают быть таковыми для СРВ на базе многоядерных процессоров [1]. В статье [2] приведен пример такого сценария системных событий, который является критическим для одноядерного процессора, но уже не является таковым для многоядерного.
В ходе исследований по методам построения СРВ на базе многоядерных процессоров был получен широкий ряд результатов как в области разработки эффективных дисциплин планирования, так и в области методов оценки выполнимости. В частности, были разработаны „пропорциональные" методы динамического назначения приоритетов, являющиеся оптимальными для систем на базе многоядерных процессоров [4, см. также Cho B. H., Ra-vindran B., Jensen E. D. An Optimal Real-Time Scheduling Algorithm for Multiprocessors]. Методы оценки выполнимости приложений, аналогичные UB-тесту (1), были разработаны для различных подклассов вычислительных моделей и различных дисциплин планирования на многоядерных процессорах. В частности, в работе [5] показано, что для приложений подкласса A2 при использовании EDF-планирования выполнимость приложения гарантируется в случае справедливости неравенства
U < m(1 - X) + X, (3)
где m — число ядер процессора, X = max{ u1, u2, ..., un}.
Заметим, что выражение (3) является обобщением условия выполнимости для одноядерных процессоров U <1, представленного в одной из первых работ по планированию и выполнимости приложений реального времени [1]. Аналогичный UB-тесту (1) метод проверки выполнимости приложений для многоядерных процессоров представлен в [6]: приложения
подкласса А2 при использовании ЯМ-планирования выполнимы на да-ядерном процессоре, если для каждой из задач плотность нагрузки не превышает да/(3да - 2) и суммарная плотность загрузки не превышает да /(3т - 2). В работе [7] построены тесты выполнимости приложений подкласса А3 при использовании БМ-планирования.
Оценка времени отклика для систем на многоядерных процессорах. Методы проверки выполнимости приложений ориентированы не только на конкретный класс (подкласс) моделей, но и на конкретную дисциплину планирования. Более универсальны методы проверки выполнимости, основанные на оценке времени отклика задач, строящиеся на решении рекуррентных соотношений типа (2) — такие методы применимы к системам с любым способом назначения статических приоритетов. Ниже предлагается обобщение подхода к оценке времени отклика задач для систем с да-ядерными процессорами. Рассмотрение ведется для вычислительных моделей подкласса А3.
Интерференция заданий в СРВ на т-ядерном процессоре. Продолжительность ¿(¿Т/) интервала существования (^(¿тД tend(kТj)) задания ¿Т/ зависит от характера интерференции ¿Т/ с заданиями типов Т1, т2, ..., Т/-1 (задачи индексируются в порядке убывания приоритетов). При /<да задания не интерферируют: в этом случае Ь(кт/) = Я(т/) = с
Рассмотрим случай />да. На величину ¿(¿Т/) существенное влияние оказывает объем суммарной нагрузки W(kТj) на процессор от экземпляров задач т1, т2, ..., / на интервале (^(¿тД tend(kт/j)). Влияние задач т1, т2, ..., т/-1 на величину ¿(¿Т/) зависит не только от вклада (¿Т/) каждой из них в суммарную нагрузку W(kТ/), но и от того, как эта нагрузка распределяется в рамках интервала (^(¿тД tend(kТj)). Заметим, что на интервале (^(¿тД tend(kт/j)) задание ¿Т/ находится в состоянии ожидания в течение ¿(¿Т/) - ¿С/ единиц времени, когда все да ядер заняты обслуживанием более приоритетных заданий, т.е. пока ¿Т/ вытеснено, процессор выполняет для задач т1, т2, ..., т/-1 вычисления объемом да(Ь(кт/) - ¿сД
В наихудшем (для времени отклика ¿Т/) случае весь объем вычислений для т1, т2, ..., т/-1 приходится на интервалы, когда вытеснено ¿Т/. В этом случае да(Ь(кт/) - ¿с/) = W(кТj); в общем случае да(Ь(кт/) - ¿с/) < W(kт/), отсюда имеем
Г/-1 Г/-1 ^
Е (к Т/ ) /да < С + Е ^ (к Т /)
V 1=1 У
(4)
¿(¿Т) < ¿С/ + W(kТj) /да < ¿С/ +
V 1=1 Л
где (к т / ) — максимально возможный вклад задачи тг- в W(kТ/).
Критический сценарий. Как было отмечено в [2], ключевым моментом для отыскания оценки времени отклика для задачи Т/ является построение критического сценария системных событий, связанных с исполнением более приоритетных задач т1, т2, ..., т/-1. Под критическим здесь будем понимать такой сценарий, который приводит к наибольшему значению W(¿Тj).
Вклад тг- в W(kТj) максимален, если на интервале (^(¿тД tend(kТ/)) выполняются следующие условия.
а) Моменты порождения соседних экземпляров т и /+1тг- задачи тг- максимально приближены друг к другу, т.е. отстоят ровно на Т1.
б) Значения с для заданий типа тг- равны С1.
в) Время отклика первого на интервале (^(¿тД tend(kТ/)) задания типа тг- равно Я1. Время отклика последнего равно С1.
г) Фазы заданий типа тг- таковы, что момент завершения последнего на интервале (^(¿тД tend(kТj)) задания типа тг- совпадает с моментом tend(¿тД
Включение условий в, г обусловлено необходимостью учета возможности внесения вклада в W(kТ/) тем из заданий типа тг-, которое было порождено до момента ^(¿тД Если этот
вклад нулевой, то wi (kTj) = T^L ( тj ) Ci (как в случае одноядерного процессора), но этот вклад будет ненулевым, если
(L(kTj) - С) - (Ci \T,/L (^ тj )1 - Ri) > 0, (5)
тогда левая часть неравенства и будет соответствовать увеличению времени отклика, привносимому в wi (kTj) заданием, порожденным до момента tbeg(kTj). Таким образом, максимально возможный вклад WWi ( k тj ) задачи т в W ( k тj ) равен
W- (kтj) = \q/L(kTj)Ci + max{o,(L(kTj)-C)(q \TijL(Tj )-R)}. (6)
Учитывая (4), заключаем, что максимальное значение Rj времени отклика задачи Tj может быть найдено из уравнения
Г j -1 Л /
Rj = С + Z\Ti/Rj 1 Ci + max{o,(( - Ci )-( \ tyRj 1-R)} /m . (7)
v ¿=1 Л
Отметим, что при i<m время отклика задачи Ti равно ее нагрузке Ri = Ci ; при i>m время отклика задачи т выражается уравнением (7). Решение уравнения (7) получим, вычислив последовательные приближения R1°, R/, ... с начальным значением R1°= Ci. Значения Ri ищутся последовательно для задач Tm+1, Tm+2 и так далее в порядке уменьшения приоритетов задач.
Заключение. Предложенный метод оценки времени отклика задач для СРВ на базе многоядерных процессоров ориентирован на класс систем со статическими приоритетами асинхронных вытесняемых задач, с миграцией исполняемых заданий между ядрами процессора. В рамках систем со статическими приоритетами задач возможность оценивать время отклика задач позволяет осуществлять проверку выполнимости задач и приложений в целом при использовании любой дисциплины планирования.
СПИСОК ЛИТЕРАТУРЫ
1. Dhall S., Liu C. On a Real-Time Scheduling Problem // Operation Research. 1978. Vol. 26. P. 127—140.
2. Никифоров В. В., Шкиртиль В. И. Использование многоядерных процессоров для построения систем реального времени // Изв. вузов. Приборостроение. 2007. Т. 50, № 10. С. 28—35.
3. Liu C. L., Layland J. W. Scheduling Algorithms for Multiprogramming in Hard Real-Time Environment // J. of the ACM. 1973. Vol. 20. P. 46—61.
4. Baruah B., Cohen N., Plaxton C., Varvel D. Proportionate progress: A notion of fairness in resource allocation // Algorithmica. 1996. Vol. 15. P. 600—625.
5. Srinivasan A., Baruah S. Deadline-based scheduling of periodic task systems on multiprocessors // Information Processing Lett. 2002. Vol. 84. P. 93—98.
6. Andersen B., Baruah S., Jonson J. Static-Priority Scheduling on Multiprocessors // Proc. IEEE Real-Time Systems Symp. 2001. P. 193—202.
7. Baker T. Multiprocessor EDF and Deadline Monotonic Schedulability Analysis // Proc. IEEE Real-Time Systems Symp. 2003. P. 120—129.
Сведения об авторах
Виктор Викентьевич Никифоров — Санкт-Петербургский институт информатики и автоматизации РАН;
E-mail: [email protected]
Вячеслав Иванович Шкиртиль — Санкт-Петербургский институт информатики и автоматизации РАН,
лаборатория технологий и систем программирования; E-mail: [email protected]
Рекомендована институтом Поступила в редакцию
16.11.07 г.