Введение
Алгоритмы планирования реального времени отличаются тем, что их качество нельзя оценивать только по факту завершения программы. Для периодических задач важны дедлайны, задержки, частота переключений контекста и загрузка процессора. Один алгоритм может давать меньше пропусков дедлайнов, но чаще переключать задачи; другой может быть простым, но плохо вести себя при высокой загрузке.
Экспериментальное сравнение полезно тем, что делает такие различия видимыми. В рамках исследования использовался тиковый эмулятор периодических задач. Он моделирует один процессор, набор задач с заданными периодами, временем выполнения и дедлайнами, а также вызывает функцию планировщика на каждом шаге модельного времени.
Цель данной статьи — показать, как тиковая симуляция позволяет сопоставить эталонные алгоритмы планирования и проверить, соответствует ли поведение эмулятора базовым теоретическим ожиданиям: условиям перегрузки, свойствам 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. Buttazzo, G. C. Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications. 3rd ed. New York: Springer, 2011. 524 p.
- 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. Silberschatz, A., Galvin, P. B., Gagne, G. Operating System Concepts. 10th ed. Hoboken: Wiley, 2018. 1278 p.
- 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.


