Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билетики.pdf
Скачиваний:
7
Добавлен:
05.06.2025
Размер:
6.66 Mб
Скачать

25. Равномерные планировщики: гарантированное, лотерейное, справедливое планирование.

Цель планирования – справедливость, все существующие в системе задачи получают определенную долю процессорного времени

Гарантированное планирование

Если в процессе работы в системе зарегистрировано n пользователей, то каждый из них получит 1/n от мощности центрального процессора. Аналогично этому, в однопользовательской системе, имеющей n работающих процессов, каждый из них получит 1/n от общего числа процессорных циклов.

Стс должна вести учет времени, получаемого каждым потоком, в момент перепланировки вычисляется отношение фактически получаемого воремени к времени гарантированному. На выполнение выбирается тот поток, у которого это отношение наименьшее.

Лотерейное планирование

Процессам раздаются "лотерейные билеты", дающие право доступа к ресурсам.

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

могут при необходимости обмениваться билетами.

Справедливое планирование.

Учитывается принадлежность процессов пользователям, в отличие от других алгоритмов. Процессорное время делится между пользователями.

26. Планирование в многопроцессорных системах.

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

Дополнительные задачи:

●​ Синхронизация: Для доступа к общим данным используются блокировки, но при росте числа процессоров конкуренция за ресурсы замедляет работу.

●​ Привязка к процессору: Процесс предпочтительно выполняется на одном

CPU, где его состояние (кеш, TLB) сохранено, что повышает производительность. Запуск на разных CPU снижает эффективность из-за перезагрузки состояния.

●​ Когерентность кешей: Разные процессоры могут хранить разные копии данных в кешах, что приводит к ошибкам. Решается аппаратно, например, через bus snooping: кеш отслеживает обновления памяти и обновляет/аннулирует данные.

Подходы к планированию:

1.​ Планирование с одной очередью (SQMS):

○​ Все задачи в общей очереди, процессоры берут их по мере готовности. ○​ Преимущества: простота, использование однопроцессорной

инфраструктуры, справедливость.

○​ Недостатки: блокировки очереди снижают масштабируемость, отсутствие привязки к процессору ухудшает локальность кеша.

2.​ Планирование с несколькими очередями (MQMS):

○​ Каждому процессору — своя очередь, задачи распределяются по эвристике (например, в наименее загруженную).

○​ Преимущества: масштабируемость, автоматическая привязка к процессору, улучшение локальности кеша.

○​ Недостатки: риск несбалансированности нагрузки, когда один процессор простаивает, а другой перегружен.

Проблема несбалансированности и миграция:

●​ При MQMS завершение задач может привести к простою процессоров (например, 4 задачи А, В, С, Д на двух CPU: если С завершается, CPU1

перегружен, CPU0 простаивает).

●​ Решение — миграция задач между процессорами. Техника "work stealing": процессор с малой нагрузкой заимствует задачи из перегруженной очереди.

●​ Проблемы миграции: частая миграция увеличивает накладные расходы, редкая

— приводит к несбалансированности. Требуется компромисс.

Пример: В SQMS 5 задач (А, В, С, Д, Е) на 4 процессорах распределяются из одной очереди, но без привязки, что снижает эффективность. В MQMS задачи А, В на CPU0, С, Д на CPU1; если С завершается, миграция (например, Д на CPU0) балансирует нагрузку.

Вывод: SQMS прост, но не масштабируется и не учитывает привязку. MQMS

масштабируем и поддерживает привязку, но требует миграции для балансировки.

Синхронизация и когерентность кешей усложняют планирование, требуя аппаратных и

программных решений.

27. Планирование в системах реального времени.

Системы реального времени делят на жесткие и мягкие ( недопустимы никакие задержки никогда и нарушения нежелательно допустимы).

Внешние события, на которые система должна реагировать, делятся:

●​ периодические – начиная с момента первоначального запроса все будущие

моменты возникновения задачи можно определить заранее; ●​ спорадические - моменты возникновения запросов заранее неизвестны.

Алгоритм “пропорционально частоте” RMS - Лью-Лайланда СТАТИЧЕСКИЙ

для жестких систем с 1 процессом

Суть алгоритма: Каждому процессу назначается фиксированный приоритет, равный частоте его запуска.

Может не справляться при высокой загрузке.

Теоретически было показано, что данный алгоритм гарантированно работает в любой системе периодических процессов при условии ∑ сi /pi ≤ n(21/n -1), где n – число задач.

Алгоритм “процесс с ближайшим сроком завершения в первую очередь” EDF

ДИНАМИЧЕСКИЙ

Каждый раз, когда процессу требуется процессорное время, он объявляет о своем присутствии и требуемом сроке завершения. Приоритет процессу назначается исходя из близости времени его завершения.

Алгоритм EDF работает с любым набором процессов, для которых возможно

планирование. Платой за это является использование более сложного алгоритма.

28. Алгоритм планирования Windows NT.

Алгоритм планирования потоков Windows NT объединяет в себе обе базовых

концепции - квантование и приоритеты. Как и во всех других алгоритмах, основанных на квантовании, каждому потоку назначается квант, в течение которого он может выполняться. Поток освобождает процессор, если:

●​ блокируется, уходя в состояние ожидания; ●​ завершается; ●​ исчерпан квант;

●​ в очереди готовых появляется более приоритетный

Использование динамических приоритетов, изменяющихся во времени,

позволяет реализовать адаптивное планирование, при котором не дискриминируются интерактивные задачи, часто выполняющие операции ввода-вывода и

недоиспользующие выделенные им кванты.

Если поток полностью исчерпал свой квант, то ее приоритет понижается на

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

Также может возникать инверсия приоритета, когда планируются 2+ потоков с разными приоритетами.

Пример ситуации:

Поток 1 (высокий приоритет): Готов к выполнению, но ожидает общий ресурс (например, мьютекс), занятый потоком 2.

Поток 2 (низкий приоритет): Находится в критическом разделе, удерживая ресурс, но не может завершиться, так как его вытесняют другие потоки.

Поток 3 (средний приоритет): Не нуждается в ресурсе и занимает процессор, так как его приоритет выше, чем у потока 2, но ниже, чем у потока 1.

Проблема: Поток 1 (высокий приоритет) не может выполняться, так как ждёт

освобождения ресурса от потока 2. Поток 2 не получает процессорного времени,

потому что поток 3 (средний приоритет) вытесняет его. В результате поток 3 получает больше времени процессора, чем ожидалось, а поток 1 задерживается, что недопустимо в системах реального времени.

Решение: Наследование приоритета (Priority Inheritance)

Для устранения инверсии приоритета используется механизм наследования приоритета:

Когда поток 1 (высокий приоритет) блокируется, ожидая ресурс, удерживаемый

потоком 2 (низкий приоритет), поток 2 временно наследует приоритет потока 1.