Алгоритм YDS
![]() | Эта статья может быть слишком технической для понимания большинства читателей . ( Июль 2013 г. ) |
YDS — это алгоритм планирования для процессоров с динамическим масштабированием скорости , который минимизирует общее потребление энергии. Он был назван в честь и разработан Яо и др. [1] Существует как онлайн, так и оффлайн версия алгоритма.
Автономный алгоритм
[ редактировать ]Определения:
- Имеется набор из n заданий , где каждое задание есть время выпуска , крайний срок и объем обработки .
- это определенный интервал времени.
- Также у нас есть , плотность работы в .
- И наконец это набор заданий, которые должны быть обработаны в , это означает, что Джобс с .
Тогда алгоритм работает следующим образом:
While Determine the time interval of maximum density . In process the jobs of at speed according to EDF Set . Remove from the time horizon and update the release times and deadlines of unscheduled jobs accordingly. end While
Другими словами, это рекурсивный алгоритм , который будет выполнять следующие шаги, пока все задания не будут запланированы:
- Рассчитайте все интенсивности для всех возможных комбинаций интервалов. Это означает, что для каждой комбинации времени начала и окончания рассчитывается интенсивность работы. Для этого времена всех заданий, время прибытия и крайний срок которых лежат внутри интервала, суммируются и делятся на длину интервала. Чтобы ускорить процесс, необходимо учитывать только комбинации времени прибытия и более поздних сроков, поскольку время без прибытия процесса или крайнего срока может быть сокращено до меньшего интервала с теми же процессами, тем самым увеличивая интенсивность, а отрицательные интервалы недействительны. Затем выбирается максимальный интервал интенсивности. В случае нескольких одинаково интенсивных интервалов один из них можно выбрать произвольно, так как интенсивности непересекающихся интервалов не влияют друг на друга, а удаление части интервала не изменит интенсивность остальных, поскольку процессы удаляются пропорционально.
- Процессы внутри этого интервала планируются с использованием метода «Сначала самый ранний срок», что означает, что задание внутри этого интервала, крайний срок которого наступит раньше, запланировано первым, и так далее. Задания выполняются с рассчитанной выше интенсивностью, чтобы уместить все задания внутри интервала.
- Интервал будет удален с временной шкалы, поскольку здесь невозможно запланировать дальнейшие вычисления. Для упрощения дальнейших расчетов все времена прибытия и сроки оставшихся работ пересчитываются, чтобы исключить уже занятое время. Например, возьмем работу со временем прибытия , крайний срок и рабочая нагрузка и работа с , и . Предположим, что предыдущий интервал был от времени к . Чтобы опустить этот интервал, время и необходимо отрегулировать; рабочие нагрузки не затронуты, так как ни для одного из них не было выполнено никакой работы. или . остается прежним, так как на него не влияют последующие упущения. однако необходимо изменить на , как . Это работа на время ушел раньше установленного срока. Время прибытия становится , как это было бы внутри удаленного интервала. также становится , так как время, оставшееся после удаленного интервала, равно . Однако важно помнить фактическое время прибытия и крайние сроки для последующего составления расписания.
- Повторяйте шаги 1–3, пока все задания не будут запланированы.
- Соберите задания в окончательное расписание в соответствии с выделенными им временными интервалами. Однако помните, что интервал может быть разделен на две части другим интервалом, рассчитанным ранее.
Для любого экземпляра задания алгоритм вычисляет оптимальное расписание, минимизирующее общее потребление энергии. [2]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Ф. Ф. Яо, А. Дж. Демерс и С. Шенкер. Модель планирования для снижения энергопотребления процессора . Учеб. 36-й симпозиум IEEE по основам информатики , 374–382, 1995.
- ^ Сюзанна Альберс , «Алгоритмы динамического масштабирования скорости»