ЭКСПЕРИМЕНТАЛЬНОЕ СРАВНЕНИЕ АЛГОРИТМОВ ПЛАНИРОВАНИЯ РЕАЛЬНОГО ВРЕМЕНИ В ТИКОВОМ ЭМУЛЯТОРЕ ПЕРИОДИЧЕСКИХ ЗАДАЧ

ЭКСПЕРИМЕНТАЛЬНОЕ СРАВНЕНИЕ АЛГОРИТМОВ ПЛАНИРОВАНИЯ РЕАЛЬНОГО ВРЕМЕНИ В ТИКОВОМ ЭМУЛЯТОРЕ ПЕРИОДИЧЕСКИХ ЗАДАЧ

Авторы публикации

Рубрика

Информационные технологии

Просмотры

4

Журнал

Журнал «Научный лидер» выпуск # 26 (279), Июнь ‘26

Поделиться

В статье представлены результаты экспериментального сравнения алгоритмов планирования реального времени в тиковом эмуляторе периодических задач. Рассмотрены алгоритмы RM, EDF, LLF, FP, FCFS, RR, SRTF и LRTF, а также несколько классов нагрузок с различной суммарной утилизацией процессора. Показано, что результаты симуляции согласуются с теоретическими свойствами эталонных алгоритмов: при низкой утилизации дедлайны не нарушаются, при перегрузке нарушения неизбежны, а различия между алгоритмами проявляются в числе пропусков дедлайнов, переключений контекста и средней длине очереди готовых задач.

Введение

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

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

Цель данной статьи — показать, как тиковая симуляция позволяет сопоставить эталонные алгоритмы планирования и проверить, соответствует ли поведение эмулятора базовым теоретическим ожиданиям: условиям перегрузки, свойствам EDF, достаточной границе RM и характерной стоимости LLF.

Модель симуляции

Время в эмуляторе является дискретным и измеряется в целых тиках. На каждом тике выполняется одинаковая последовательность действий: релиз новых экземпляров периодических задач, проверка незавершённых джобов, вычисление состояния готовой очереди, вызов функции scheduler_select, выполнение выбранной задачи на один тик и обновление статистики.

Каждая задача характеризуется периодом T, временем выполнения C и относительным дедлайном D. Теоретическая утилизация нагрузки вычисляется как U = Σ Cᵢ / Tᵢ. Если U > 1, одному процессору физически не хватает времени для выполнения всех работ, поэтому пропуски дедлайнов становятся неизбежными независимо от выбранного алгоритма [2, с. 46].

Для сравнения использовались алгоритмы RM, EDF, LLF, FP, FCFS, RR, SRTF и LRTF. RM назначает более высокий приоритет задачам с меньшим периодом. EDF выбирает джоб с ближайшим абсолютным дедлайном. LLF ориентируется на минимальную лаксити. Остальные алгоритмы используются как контрольные или контрастные политики, позволяющие увидеть влияние самого правила выбора задачи.

Таблица 1.

Краткая характеристика алгоритмов планирования

Алгоритм

Правило выбора

Ожидаемый учебный эффект

RM

Выбор готовой задачи с наименьшим периодом.

Показывает статический приоритет и достаточную границу планируемости.

EDF

Выбор готового джоба с ближайшим абсолютным дедлайном.

Демонстрирует динамический приоритет и связь с условием U ≤ 1.

LLF

Выбор задачи с минимальной лаксити.

Показывает высокую чувствительность к срочности и рост переключений.

FCFS

Выбор задачи с наиболее ранним релизом.

Служит простым сравнительным ориентиром.

SRTF/LRTF

Выбор минимального или максимального оставшегося времени.

Показывает, как меняется результат при противоположных правилах.

Наборы нагрузок и метрики

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

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

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

Таблица 2.

Классы нагрузок для экспериментального анализа

Класс нагрузки

Утилизация U

Назначение эксперимента

Лёгкая нагрузка из трёх задач

0,157

Базовая проверка без дефицита процессорного времени.

Умеренно плотная нагрузка из пяти задач

0,922

Проверка различий между статическими и динамическими алгоритмами.

Сбалансированная нагрузка из шести задач

0,900

Учебный сценарий с высокой, но планируемой загрузкой.

Стрессовая нагрузка из восьми задач

1,430

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

Всплесковая нагрузка из четырёх задач

1,120

Демонстрация влияния противоположных правил выбора задачи.

Результаты сравнения

На лёгкой нагрузке все проверенные алгоритмы завершили прогон без пропусков дедлайнов. Такой результат ожидаем: суммарная потребность задач составляет лишь 15,7% процессорного времени, поэтому даже простые политики имеют большой запас. В этом сценарии различия алгоритмов проявляются слабо, что важно учитывать при учебной интерпретации результатов.

Умеренно плотная нагрузка из пяти задач лучше разделяет алгоритмы. При U = 0,922 алгоритмы EDF и LLF не допускают пропусков дедлайнов, тогда как RM и FP фиксируют по 12 нарушений. При этом LLF выполняет больше переключений контекста, чем EDF. Это согласуется с теоретическим ожиданием: динамический учёт срочности может улучшать соблюдение дедлайнов, но не всегда уменьшает стоимость исполнения.

Сбалансированная нагрузка из шести задач при U = 0,900 оказалась планируемой для проверенных алгоритмов. На таком наборе удобно демонстрировать отчёты и временные ряды, потому что алгоритмы работают без немедленного провала по дедлайнам, но нагрузка уже достаточно плотная для анализа очереди и переключений.

Стрессовая нагрузка из восьми задач имеет U = 1,430. Это означает, что суммарная потребность задач превышает доступное время одного процессора. В результате пропуски возникают у всех алгоритмов. Эксперимент здесь нужен не для поиска идеального алгоритма, а для проверки, что эмулятор не показывает невозможного расписания там, где его не должно быть.

Таблица 3.

Сводные экспериментальные наблюдения

Нагрузка

Алгоритмы

U

Пропуски дедлайнов

Вывод

Лёгкая из трёх задач

RM, EDF, LLF, FP

0,157

0 у всех

Низкая загрузка скрывает различия алгоритмов.

Умеренно плотная из пяти задач

RM, EDF, LLF, FP

0,922

RM/FP: 12; EDF/LLF: 0

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

Сбалансированная из шести задач

RM, EDF, LLF, FP

0,900

0 у всех

Набор удобен для демонстрации отчётов без перегрузки.

Стрессовая из восьми задач

RM, EDF, LLF

1,430

RM: 306; EDF: 360; LLF: 716

Перегрузка подтверждает необходимое условие U ≤ 1.

Всплесковая из четырёх задач

SRTF/LRTF

1,120

43 / 175

Правило выбора задачи заметно влияет на результат.

Сопоставление с теорией

Первое теоретическое ожидание связано с перегрузкой. Если U > 1, пропуски дедлайнов неизбежны для одноядерной модели, потому что задачам требуется больше процессорного времени, чем доступно. Эксперименты на стрессовой и всплесковой нагрузках подтверждают это свойство: нарушения возникают у всех проверенных алгоритмов.

Второе ожидание связано с EDF. В идеальной вытесняющей модели независимых периодических задач EDF является оптимальным при условии U ≤ 1 [2, с. 46]. В экспериментах EDF не допускает пропусков на планируемых наборах и начинает фиксировать нарушения при перегрузке. Такое поведение соответствует учебной модели и подтверждает корректность расчёта абсолютных дедлайнов.

Третье ожидание касается RM. Граница Лю — Лейланда является достаточной, но не необходимой. Это значит, что нагрузка ниже границы гарантированно планируема для RM, но превышение границы само по себе ещё не доказывает невозможность расписания [2, с. 49]. В экспериментах гармоническая и сбалансированная нагрузки могут выполняться без пропусков, хотя находятся выше простой достаточной оценки.

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

Таблица 4.

Сопоставление теоретических положений и наблюдений

Теоретическое положение

Экспериментальное наблюдение

Интерпретация

При U > 1 одноядерная система перегружена.

На U = 1,430 все алгоритмы допускают пропуски.

Эмулятор корректно отражает дефицит процессорного времени.

EDF оптимален в идеальной модели при U ≤ 1.

На планируемых наборах EDF не нарушает дедлайны.

Поведение соответствует базовому свойству EDF.

Граница RM достаточна, но не необходима.

Некоторые наборы выше границы выполняются без пропусков.

Превышение границы требует проверки, но не означает автоматический отказ.

LLF может часто переключать задачи.

LLF даёт существенно больше переключений на плотных нагрузках.

Срочность выбора сопровождается стоимостью исполнения.

Заключение

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

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

Список литературы

  1. 1. Buttazzo, G. C. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. 3rd ed. New York: Springer, 2011. 524 p.
  2. 2. Liu, C. L., Layland, J. W. Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment // Journal of the ACM. 1973. Vol. 20, no. 1. P. 46–61.
  3. 3. Silberschatz, A., Galvin, P. B., Gagne, G. Operating System Concepts. 10th ed. Hoboken: Wiley, 2018. 1278 p.
  4. 4. Stankovic, J. A. Misconceptions About Real-Time Computing: A Serious Problem for Next-Generation Systems // Computer. 1988. Vol. 21, no. 10. P. 10–19.
Справка о публикации и препринт статьи
предоставляется сразу после оплаты
Прием материалов
c по
Остался последний день
Размещение электронной версии
Загрузка материалов в elibrary
Публикация за 24 часа
Узнать подробнее
Акция
Cкидка 20% на размещение статьи, начиная со второй
Бонусная программа
Узнать подробнее