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

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

268

Теоремы о планировании методом монотонных частот необхо- димо обобщить на задачу об инверсии приоритетов. В следующем разделе мы покажем, как это сделать.

11.2. Развитие теории планирования в реальном времени

На практике нередко возникают ситуации, когда предпосылки, положенные в основу алгоритма монотонных частот, не оправдыва- ются. В частности, если задачи нужно выполнять не с теми приорите- тами, которые назначаются из соображений монотонности. Базовый

алгоритм монотонных частот необходимо распространить и на такие случаи. Один из них блокирование высокоприоритетных задач низ- коприоритетными был описан в предыдущем разделе.

Другой случай возникает, когда есть апериодические задачи. В разделе 11.1.5 мы говорили, что их можно рассматривать как перио- дические с эквивалентным периодом, равным времени между после- довательными активизирующими событиями в худшем случае. Со- гласно алгоритму монотонных частот, если период апериодической задачи больше, чем периодической, то она должна выполняться с бо- лее низким приоритетом. Но, если апериодическая задача активизи- руется прерыванием, она должна активизироваться, как только пре- рывание произошло, даже если время между прерываниями больше, чем период периодической задачи.

11.2.1. Инверсия приоритетов. Термин «инверсия приоритетов» применяется к любой ситуации, когда некоторая задача не может продолжить выполнение, поскольку блокирована другой задачей с более низким приоритетом. В случае алгоритма монотонных частот под приоритетом понимается частотно-монотонный приоритет, на- значенный задаче исключительно на основе длины ее периода, без учета относительной важности. В реальности задаче допустимо на- значить приоритет, отличный от частотно-монотонного. Когда гово- рят об инверсии частотно-монотонных приоритетов, то имеют в виду, что задача А вытеснена задачей В хотя частотно-монотонный при- оритет задачи В меньше, чем задачи А (то есть период В длиннее пе- риода А).

Проиллюстрируем сказанное на примере. Пусть имеется перио- дическая задача с периодом 25 мс и задача, управляемая прерыва- ниями, для которой время между последовательными событиями в худшем случае составляет 50 мс. Частотно-монотонный приоритет

www.pdffactory.com

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

269

задачи А выше, поскольку у нее короче период, но на практике более высокий приоритет лучше назначить управляемой прерываниями за- даче, чтобы она успевала обрабатывать прерывания по мере их по- ступления. Когда управляемая прерываниями задача вытесняет пе- риодическую, возникает ситуация инверсии частотно-монотонных приоритетов: если бы первой задаче назначили обычный частотно- монотонный приоритет, вытеснения не произошло бы.

Базовый алгоритм частотно-монотонного планирования был

обобщен на подобные случаи инверсии приоритетов посредством эффекта блокировки низкоприоритетными задачами, а также вытес- нения высокоприоритетными задачами, для которых приоритет не совпадает с частотно-монотонным. Поскольку в теории частотно- монотонного планирования предполагается, что приоритеты назначе- ны в соответствии с длинами периодов, то вторую ситуацию можно Трактовать аналогично первой.

Рассмотрим задачу ti с периодом Тi, в течение которого она по- требляет С единиц времени процессора. Если мы хотим обобщить теоремы 1-3, то необходимо явно рассмотреть каждую задачу ti, что- бы определить, успевает ли она завершиться до своего первого срока. Для любой задачи нужно принять во внимание четыре фактора:

время вытеснения более приоритетными задачами с периода- ми меньшими, чем у ti. Такие задачи способны вытеснять ti много- кратно. Обозначим множество таких задач Нn и предположим, что оно состоит из j задач. Пусть Сj процессорное время, потребляемое задачей j, а Тj период этой задачи, причем Тj < Тi. Коэффициент ис- пользования процессора задачей j из множества Нn равен Сj / Тj;

время выполнения задачи ti. Задача ti выполняется один раз в течение своего периода Тi и потребляет Сi единиц времени процессо- ра;

вытеснение более приоритетными задачами с большими пе- риодами. Это задачи, приоритеты которых отличны от частотно- монотонных. Они могут вытеснять ti только один раз, так как их пе-

риоды длиннее, чем у ti. Назовем множество таких задач Н1 и пред- положим, что оно состоит из k задач. Пусть время, потребляемое k-ой задачей из этого множества, равно Сk. Коэффициент использования ЦП для k-ой задачи в худшем случае равен Сk / Тi, так как при этом задача k вытесняет t и использует все свое время С, на периоде Тi;

www.pdffactory.com

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

270

время блокировки задачами с более низким приоритетом (см. предыдущий раздел). Эти задачи могут выполняться только один раз, поскольку имеют более длинные периоды. Задержки из-за блокиров- ки нужно анализировать отдельно для каждой задачи, чтобы опреде- лить ситуацию в худшем случае, описываемую протоколом предель- ного приоритета. Если Вi время блокировки для задачи ti в худшем случае, то коэффициент использования ЦП (тоже в худшем случае) для периода Тi составляет Вi / Тi.

11.2.2. Обобщенная теорема о верхней границе коэффициента использования ЦП. Поскольку для любой задачи ti факторы 1 и 2 из предыдущего раздела уже учитываются теоремами 1-3, то при обоб- щении данных теорем надо принять во внимание только факторы 3 и 4. С учетом всех четырех факторов обобщенная теорема о верхней

границе коэффициента использования формулируется следующим образом.

Обобщенная теорема о верхней границе коэффициента использования (теорема 4):

 

 

æ

å

Cj

ö

1

(Ci + Bi + åCk }

Ui

=

çç

 

 

÷÷

+

 

T

j

T

 

 

è j H n

ø

 

i

k H1

Здесь Ui верхняя граница коэффициента использования ЦП за период Тi для задачи ti. Первый член в полученной формуле сум- марное использование за счет вытеснения высокоприоритетными за- дачами с периодом меньшим, чем у ti. Второй член соответствует ис- пользованию процессора задачей ti Третий член учитывает время блокировки задачи ti в худшем случае, а четвертый суммарное вре- мя вытеснения этой задачи более приоритетными, но с периодами меньшими, чем у ti.

Подставив значения в приведенную формулу, можно определить значение Ui для данной задачи. Если Ui меньше верхней границы для худшего случая, то задача ti удовлетворяет временным ограничениям. Важно понимать, что проверять верхнюю границу коэффициента ис- пользования нужно для каждой задачи: если приоритеты назначаются не в соответствии с монотонностью частот, тот факт, что данная за- дача удовлетворяет временным ограничениям, не предполагает того же в отношении более приоритетных задач.

11.2.3. Обобщенная теорема о времени завершения. Как и рань-

ше, если обобщенная теорема о верхней границе коэффициента ис-

www.pdffactory.com

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

271

пользования не дает результата, допустимо применить более точный тест, позволяющий проверить, сможет ли задача завершиться в тече- ние своего периода. Это обобщенная теорема о времени завершения. Она определяет, закончит ли задача ti выполнение к концу своего пе- риода в условиях вытеснения задачами с более высокими приорите- тами и блокировки задачами с более низкими приоритетами. В дан- ной теореме предполагается худший случай, когда все задачи готовы к работе в начале периода ti. Графически обобщенную теорему о вре- мени завершения можно представить, нарисовав временную диа- грамму для всех задач вплоть до момента завершения периода Тi за-

дачи ti.

11.2.4. Планирование в реальном времени и проектирование.

Теорию планирования в реальном времени можно применить к мно- жеству параллельных задач либо на этапе проектирования, либо уже после реализации всех задач. Поскольку во время проектирования для времени ЦП существуют только приблизительные оценки, нужно быть осторожнее и при разработке задач реального времени с жест-

кими временными ограничениями полагаться на пессимистическую теорему о верхней границе коэффициента использования. Эта тео- рема дает верхнюю границу 0,69 в худшем случае, хотя теория пла- нирования в реальном времени часто указывает более высокие значе- ния. Если верхняя граница в худшем случае не может быть достигну- та, придется изучить альтернативные решения. С точки зрения проек- тировщика-пессимиста, оценка верхней границы коэффициента выше 0,69 приемлема при условии, что использование сверх 0,69 целиком

обусловлено низкоприоритетными задачами с мягкими временными ограничениями или задачами, которые могут исполняться не в реаль- ном масштабе времени. Для таких задач эпизодический пропуск сро- ка выполнения не столь важен.

Иногда на этапе проектирования имеется определенная свобода в назначении приоритетов задачам. Приоритеты следует по возмож- ности назначать в соответствии с алгоритмом монотонных частот. Проще всего применять его к периодическим задачам. Для апериоди- ческих задач нужно оценить время между событиями в худшем слу- чае и назначить им частотно-монотонные приоритеты. Задачам, управляемым прерываниями, обычно назначают наивысшие приори- теты, то есть превышающие частотно-монотонные. Если две задачи характеризуются одинаковыми периодами, а значит, и частотно-

www.pdffactory.com

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

272

монотонными приоритетами, то выбор остается за проектировщиком. Более высокий приоритет рекомендуется назначать задаче, которая важнее с точки зрения приложения.

11.2.5. Пример применения обобщенной теории планирования в реальном времени. В качестве примера рассмотрим следующий слу- чай. Есть четыре задачи: две периодические и две апериодические. Апериодическая задача ta управляется прерываниями и должна успеть выполниться в течение 200 мс после прерывания, иначе данные будут потеряны. Для другой апериодической задачи время между события- ми в худшем случае равно Т2 и оно принимается равным периоду эк- вивалентной периодической задачи. Ниже приведены детальные ха- рактеристики задач, причем время указано в миллисекундах, а коэф- фициент использования Ui=Ci/Ti.

Периодическая задача t1: С1 = 20; Т1 = 100; U1 = 0,2. Апериодическая задача t2: С2 = 15; Т2 = 150; U2 = 0,1. Управляемая прерываниями задача ta: Сa = 4; Тa = 200; Ua =

0,02.

Периодическая задача t3: C3 = 30; T3 = 300; U3 = 0,1.

Кроме того, известно, что задачи t1, t2 и t3 обращаются к одному и тому же хранилищу данных, защищенному семафором S. Предпо- лагается, что затраты на контекстное переключение, один раз в нача- ле и один раз в конце выполнения задачи, входят в потребляемое процессорное время.

Задачам назначены приоритеты в строгом соответствии с алго- ритмом монотонных частот, то есть t1 имеет наивысший приоритет, а за ней следуют t2, ta и t3 Но, поскольку для ta время реакции жестко ограничено, ей присвоен наивысший приоритет, а уже потом идут t1,

t2 и t3

Полный коэффициент использования ЦП равен 0,42, то есть ни- же верхней границы в худшем случае (она равна 0,69). Однако необ- ходимо исследовать каждую задачу отдельно, поскольку приоритеты отличаются от частотно-монотонных.

Сначала рассмотрим управляемую прерываниями задачу ta. По- скольку у нее самый высокий приоритет, она получает процессор по первому требованию. Коэффициент использования здесь равен 0,02,

www.pdffactory.com

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

273

так что задача не будет испытывать никаких затруднений с заверше- нием в срок.

Далее разберем задачу t1, которая исполняется 20 мс на протя- жении своего периода Т1, равного 100 мс. Для применения обобщен-

ной теоремы о верхней границе коэффициента использования надо принять во внимание четыре фактора:

время вытеснения более приоритетными задачами с периода- ми меньшими, чем Т1. Таких задач нет;

время выполнения С1 задачи t1 равно 20. Коэффициент исполь- зования U1 = 0,2;

вытеснение более приоритетными задачами с большими пе- риодами. В эту категорию попадает задача ta. Коэффициент исполь- зования за счет вытеснения на периоде Т1 равен Сa/Т1 = 4/100 = 0,04;

время блокировки задачами с более низким приоритетом. По-

тенциально заблокировать t1 могут задачи t2 и t3. Учитывая алгоритм предельного приоритета, мы заключаем, что на самом деле блокиро-

вать t1 может только одна низкоприоритетная задача. В худшем слу- чае это будет t3, поскольку она потребляет больше всего процессор- ного времени – 30 мс. Коэффициент использования за счет блокиров-

ки на периоде Т1 составляет B3/Т1 = 30/100 = 0,3.

Коэффициент использования в худшем случае равен сумме всех полученных коэффициентов, то есть 0,04 + 0,2 + 0,3 = 0,54, что мень-

ше верхней границы 0,69. Следовательно, t1 удовлетворяет времен- ным ограничениям.

Далее рассмотрим задачу t2 которая выполняется 15 мс в тече- ние своего периода Т2 длительностью 150 мс. Как и выше, обратим внимание на четыре фактора:

время вытеснения более приоритетными задачами с периода-

ми меньшими, чем Т2. Только одна задача t1 имеет такой период. Ее коэффициент использования за счет вытеснения равен U1=0,2;

время выполнения С2 задачи t2 равно 15. Коэффициент исполь- зования U2 = 0,1;

вытеснение более приоритетными задачами с большими пе- риодами. В эту категорию попадает управляемая прерываниями зада-

ча ta. Коэффициент использования за счет вытеснения на периоде Т2 равен Сa/Т2 = 4 / 150 = 0,03. Полный коэффициент использования за счет вытеснения задачами t1 и ta составляет 0,2 + 0,03 = 0,23;

www.pdffactory.com

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

274

время блокировки задачами с более низким приоритетом. За-

дача t3 может блокировать t2. В худшем случае время блокировки со- ставит 30 мс. Коэффициент использования за счет блокировки на пе-

риоде Т2 равен B3 / Т2 = 30 / 150 = 0,2.

Коэффициент использования в худшем случае составит

0,23+0,1+0,2 = 0,53, то есть меньше 0,69. Следовательно, и t2 удовле- творяет временным ограничениям.

Осталось рассмотреть задачу t3 которая выполняется 30 мс на протяжении своего периода T3 продолжительностью 300 мс. Снова применим обобщенную теорему о верхней границе:

время вытеснения более приоритетными задачами с периода- ми меньшими, чем Т3. Все три высокоприоритетные задачи попадают

вэту категорию, так что полный коэффициент использования за счет вытеснения равен U1 + U2 + Ua = 0,2 +0,1 + 0,02 = 0,32;

время выполнения C3 задачи t3 равно 30. Коэффициент исполь- зования U3 = 0,1;

вытеснение более приоритетными задачами с большими пе- риодами. Таких задач нет;

время блокировки задачами с более низким приоритетом. Та- ких задач нет.

Коэффициент использования в худшем случае составит 0,32 +

0,1 = 0,42, то есть меньше 0,69. Значит, t3 также удовлетворяет вре- менным ограничениям. Итак, все четыре задачи успевают выпол- ниться в срок.

11.3. Анализ производительности с помощью анализа последовательности событий

На этапе определения требований задается время реакции сис- темы на внешние события. После разбиения на задачи можно пред- принять первую попытку выделения временных бюджетов парал- лельным задачам. Для выявления задач, которые необходимо выпол- нить при обслуживании данного внешнего события, используется анализ последовательности событий. Чтобы показать последова- тельность событий и задач, активизируемых приходом внешнего со-

бытия, применяется диаграмма последовательности событий, осно-

ванная на диаграмме параллельной кооперации.

Следует рассмотреть внешнее событие, определить, какая задача ввода/вывода активизируется таким событием и какая ожидается це-

www.pdffactory.com

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

275

почка внутренних событий. Для этого необходимо знать, какие зада- чи активизируются и какие задачи ввода/вывода генерируют отклик системы на внешнее событие. Далее нужно оценить время ЦП, по- требляемое каждой задачей, и накладные расходы, состоящие из за- трат на контекстное переключение, обработку прерывания и межза- дачные коммуникации и синхронизацию. Надо проанализировать также другие задачи, выполняемые в тот же период времени. Сум- марное время ЦП, потребляемое всеми задачами, которые участвуют в цепочке событий, и всеми дополнительными задачами, которые ис- полнялись в то же время, плюс накладные расходы все вместе не должно превысить заданное время реакции системы. Если вы не знае- те точно времени ЦП, потребляемого каждой задачей, принимайте оценку для худшего случая.

Для анализа полного коэффициента использования ЦП необхо- димо рассчитать время, потребляемое каждой задачей на данном ин- тервале. Если существует несколько путей выполнения задачи, то нужно получить оценку времени для каждого из них. Затем следует оценить частоту активизации задач. Для периодических задач это легко. Для асинхронных задач удобно рассмотреть среднюю и макси- мальную частоту активизации. Умножьте время ЦП для каждой зада- чи на ее частоту активизации, просуммируйте результаты и вычисли- те коэффициент использования ЦП.

Пример применения анализа последовательности событий при- веден в разделе 17.5.

11.4. Анализ производительности с помощью теории планирования в реальном времени и анализа последовательности событий

Ниже мы расскажем, как теория планирования в реальном вре- мени сочетается с анализом последовательности событий. Вместо то- го чтобы рассматривать задачи по отдельности, необходимо изучить все задачи, участвующие в некоторой последовательности событий. Сначала исполняется задача, активизируемая внешним событием, ко- торая инициирует цепочку внутренних событий, а они, в свою оче- редь, активизируют другие задачи. Необходимо убедиться, что все задачи, вошедшие в цепочку, способны завершить исполнение вовре- мя.

www.pdffactory.com