Пример 9 характеристики шести задач, обсуждаемых в Примере 9

Интересный пример был предложен Borger, Klein, и Veltre [8] для набора задач, представленных в Таблице 9. Этот пример показывает определение максимального времени контекстного переключения C, таким, что задачи все еще являются диспетчируемыми. В приложении представлена программа на языке C для выполнения этих вычислений, использующая методику, весьма подобную используемой в Примере 8.

Таблица 9: Характеристики шести задач, обсуждаемых в Примере 9.

Задача i Время вычисления Ci Период Ti Отношение Ci/Ti Использование (1.. N) Граница
  0.5 2.56 0.1953 0.1953 1.000
  5.0 40.96 0.1221 0.3174 0.828
  15.0 61.44 0.2441 0.5615 0.779
  30.0 983.04 0.0305 0.5920 0.756
  50.0 1024.0 0.0488 0.6408 0.743
  1.0 1280.0 0.0008 0.6416 0.735

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

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

Ci + D e

Где De - время выполнения диспетчера.

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

Поскольку низкоприоритетные задачи блокируют высокоприоритетные в результате перепланирования, время выполнения должно быть увеличено в соответствии с количеством низкоприоритетных задач следующим образом:

C’i + (N - i) x Db

где C’’i = C’i + De и Db – время блокировки планировщиком, где Db ≤ De. В общем случае Db может быть меньше De, если низкоприоритетная задача активизируется одновременно с высокоприоритетной [8].

Пример теста на диспетчируемость для набора задач из Таблицы 9, включая оба эффекта планировки (то есть те, которые определяют времена Db и De) приводится в статье Borger, Klein, и Veltre [8] (для De = Db = 0.2 миллисекунды). Дополнительное представление о вкладе накладных расходов планировщика можно получить из анализа диспетчеризации, полученного на основе экспериментальных исследований, приведенного в статье Burns, Wellings и Hutcheon [9].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: