- •Раздел 4. Взаимодействие процессов
- •4.1. Примитивы синхронизации процессов
- •4.1.1. Простейшие примитивы, не учтенные в классификации
- •4.1.2. Примитивы временной синхронизации
- •4.1.3. Примитивы событийной синхронизации процессов
- •4.2. Общий семафор как средство событийной синхронизации
- •4.3. Примитивы ядра для обмена сообщениями
- •Примитивы синхронизации процессов;
- •4.3.1. Буфер как средство коммуникации между процессами
- •4.4. Условные переменные
- •4.5. Монитор как средство реализации взаимного исключения
- •4.6. Проблема тупиков при взаимодействии процессов
- •4.7. Планирование загрузки процессора в ядре
- •4.7.1. Классификация алгоритмов планирования
- •4.7.2. Классификация задач с точки зрения планируемости
- •4.7.3. Динамическое планирование
- •4.7.3.1. Планирование независимых задач
- •1. Алгоритм монотонной скорости.
- •2. Алгоритм “задача с минимальным предельным сроком завершения - первая”
- •3. Алгоритм минимальной неопределенности
- •4.7.3.2. Планирование зависимых задач
- •4.7.4. Статическое планирование
- •Раздел 4
1. Алгоритм монотонной скорости.
Это классический алгоритм планирования множества независимых периодических задач в системе с одним процессором.
Алгоритм монотонной скорости – это динамический вытесняющий алгоритм, основанный на статических приоритетах задач.
Делаются следующие предположения о множестве задач:
Запросы всех задач периодические.
Все задачи независимы друг от друга. Не существует никаких ограничений предшествования или взаимного исключения между любой парой задач.
Предельный интервал завершения di каждой задачи Тi равен ее периоду рi.
Длительность каждой задачи сi известна априори и постоянна.
Временем, требуемым для переключения контекста, можно пренебречь.
Сумма m факторов mi полезности n задач определяется:
m = mi = ci/pi < 0.7.
Алгоритм монотонной скорости назначает задачам статические приоритеты, основанные на периодах.
Задача с кратчайшим периодом получает высочайший статический приоритет, а задача с длиннейшим периодом получает наименьший статический приоритет.
Во время выполнения диспетчер выбирает запрос задачи с высочайшим статическим приоритетом.
Если все предположения выполнены, то алгоритм монотонной скорости гарантирует, что все задачи завершатся в свой предельный срок завершения.
Алгоритм оптимален для однопроцессорной системы.
Доказательство этого алгоритма основано на анализе поведения множества задач в критический момент.
Критический момент задачи – это момент, в который запрос этой задачи будет иметь максимальное время отклика.
Для системы задач в целом, критический момент появляется, когда запросы для всех задач делаются одновременно.
На первой фазе доказательства, начиная с задачи высочайшего приоритета, показывают, что все задачи будут выполняться в свои предельные сроки завершения, даже в случае критического момента.
Во второй фазе доказательства показывают, что любой сценарий может быть обработан, если может быть обработан сценарий критического момента.
Кроме того, предположение (6), сделанное выше, может быть ослаблено, если периоды задач кратны периоду задачи с высочайшим приоритетом.
В этом случае фактор m полезности n задач:
m = ci/pi <= 1,
может приблизиться к теоретическому максимуму – единице, в однопроцессорной системе.
Алгоритм монотонной скорости был расширен на обработку множества задач, для которых предельный интервал завершения отличается от периода.
2. Алгоритм “задача с минимальным предельным сроком завершения - первая”
Динамический вытесняющий алгоритм для однопроцессорных систем, который основан на динамических приоритетах.
Должны выполняться предположения с (1) по (5) алгоритма монотонной скорости.
Полезность m может подняться до 1, даже когда периоды задач не кратны наименьшему периоду.
После события, активизирующего алгоритм планирования, задаче с минимальным предельным сроком завершения назначается высочайший динамический приоритет.
У этого алгоритма есть недостатки:
Не всегда можно оценить время выполнения задачи и существуют правила, определяющие, что делать с задачей, время выполнения которой превысило оценочное (назначать штраф, снимать с выполнения и т. п.).
Не всегда самые короткие задания являются самыми важными.