
- •Раздел 3. Параллельное выполнение программ
- •3.1. Концепция процесса
- •3.2. Средства описания параллелизма
- •3.2.1. Графические средства
- •3.2.3. Описание процессов средствами uml
- •3.2.4. Языковые средства описания параллелизма
- •3.3. Организация ядра ос
- •3.3.1. Ядро как средство организации виртуальной машины
- •3.3.2. Состояния процесса и структура ядра
- •3.3.3. Дескрипторы процессов
- •3.3.4. Очереди процессов в ядре
- •3.4. Общая характеристика примитивов ядра
- •3.5. Примитивы создания и уничтожения процессов
- •3.6. Примитивы синхронизации процессов
- •3.6.1. Простейшие примитивы, не учтенные в классификации
- •3.6.2. Примитивы временной синхронизации
- •3.6.3. Примитивы событийной синхронизации процессов
- •3.7. Общий семафор как средство событийной синхронизации
- •3.8. Средства синхронизации в существующих операционных системах
- •3.9. Монитор как средство реализации взаимного исключения
- •3.10. Примитивы ядра для обмена сообщениями
- •3.10.1. Буфер как средство коммуникации между процессами
- •3.10.2. Почтовый ящик с очередью сообщений
- •3.10.3. Средства коммуникаций в существующих ос
- •3.11. Проблема тупиков при взаимодействии процессов
- •3.12. Планирование загрузки процессора в ядре
- •3.12.1. Классификация алгоритмов планирования
- •3.12.2. Тесты планируемости задач и классификация задач
- •3.12.3. Динамическое планирование
- •3.12.3.1. Планирование независимых задач
- •1. Алгоритм монотонной скорости.
- •2. Алгоритм “задача с минимальным предельным сроком завершения - первая”
- •3. Алгоритм минимальной неопределенности
- •3.12.3.2. Планирование зависимых задач
- •3.12.4. Статическое планирование
3.12.3. Динамическое планирование
По каждому событию, приводящему к запуску планирующего алгоритма, динамический планировщик оперативно определяет, какая задача из множества готовых задач должна быть обслужена следующей.
Алгоритмы различаются предположениями о характере поведения задач.
3.12.3.1. Планирование независимых задач
Алгоритмы без использования приоритетов
Вопрос (
К указанным алгоритмам относятся:
Алгоритм планирования по принципу FIFO
Алгоритм циклического планирования
Алгоритм многоуровневого планирования
)Вопрос
Вопрос {
Планирование по принципу FIFO. Это простейшая дисциплина обслуживания без вытеснения.
В чистом виде используется редко. Используется в сочетании с другими дисциплинами обслуживания.
Эта дисциплина бесполезна в случае интерактивных задач, поскольку не может гарантировать хорошие показатели времени отклика.
)Вопрос
Циклическое или круговое планирование (RR – round robin).
Сочетание принципа FIFO с time-sharing-ом.
Если процесс не заканчивает выполнение в течение выделенного кванта времени, он снимается с процессора и ставится в конец очереди.
Такой вариант планирования может использоваться и без time-sharing-га.
В этом случае процесс снимается с процессора и ставится в конец очереди при обращении к примитивам ядра или при добровольной передаче управления.
Так реализовано планирование в NetWare 3 и оно очень эффективно.
Такая дисциплина может быть использована с интерактивными процессами.
Многоуровневое планирование.
Процесс входит в сеть очередей с самого верхнего уровня.
Перемещается по очереди, пока не достигнет процессора.
Если выделенный квант времени истекает, то процесс снимается с выполнения и переводится в следующую очередь.
И т. д.
На самом низу - циклическое обслуживание до завершения.
Квант времени с переходом на более низкий уровень увеличивается.
Процессы из очереди некоторого уровня начинают выполняться, если нет процессов в очередях более высоких уровней, и прерываются, если появляются процессы на более высоких уровнях.
В некоторых системах процесс несколько раз проходит по очереди одного уровня прежде, чем попадает в очередь более низкого уровня.
И количество таких циклов растет с переходом на более низкие уровни.
Многоуровневые очереди - идеальный механизм планирования.
Цель перечисления этих вариантов планирования состоит в том, чтобы показать важность оценки потерь при выборе тех или иных алгоритмов планирования для многозадачной операционной среды.
Алгоритмы приоритетного планирования
1. Алгоритм монотонной скорости.
Это классический алгоритм планирования множества независимых периодических задач в системе с одним процессором.
Вопрос (
Алгоритм монотонной скорости – это динамический вытесняющий алгоритм, основанный на статических приоритетах задач.
)Вопрос
Делаются следующие предположения о множестве задач:
Запросы всех задач периодические.
Все задачи независимы друг от друга. Не существует никаких ограничений предшествования или взаимного исключения между любой парой задач.
Предельный интервал завершения di каждой задачи Тi равен ее периоду рi.
Длительность каждой задачи сi известна априори и постоянна.
Временем, требуемым для переключения контекста, можно пренебречь.
Вопрос (
Сумма m факторов mi полезности n задач определяется:
m = mi = ci/pi <= n(21/n - 1).
Выражение n(21/n - 1) близко к ln2, т.е. около 0.7, когда n стремится к бесконечности.
)Вопрос
Вопрос (
Алгоритм монотонной скорости назначает задачам статические приоритеты, основанные на периодах.
Задача с кратчайшим периодом получает высочайший статический приоритет, а задача с длиннейшим периодом получает наименьший статический приоритет.
Во время выполнения диспетчер выбирает запрос задачи с высочайшим статическим приоритетом.
)Вопрос
Если все предположения выполнены, то алгоритм монотонной скорости гарантирует, что все задачи завершатся в свой предельный срок завершения.
Алгоритм оптимален для однопроцессорной системы.
Доказательство этого алгоритма основано на анализе поведения множества задач в критический момент.
Критический момент задачи – это момент, в который запрос этой задачи будет иметь максимальное время отклика.
Для системы задач в целом, критический момент появляется, когда запросы для всех задач делаются одновременно.
На первой фазе доказательства, начиная с задачи высочайшего приоритета, показывают, что все задачи будут выполняться в свои предельные сроки завершения, даже в случае критического момента.
Во второй фазе доказательства показывают, что любой сценарий может быть обработан, если может быть обработан сценарий критического момента.
Кроме того, предположение (6), сделанное выше, может быть ослаблено если, периоды задач кратны периоду задачи с высочайшим приоритетом.
В этом случае фактор m полезности n задач:
m = ci/pi <= 1,
может приблизиться к теоретическому максимуму – единице, в однопроцессорной системе.
Алгоритм монотонной скорости был расширен на обработку множества задач, для которых предельный интервал завершения отличается от периода.