Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

Стратегия распределения загрузки

Для реализации стратегии распределения загрузки требуется при освобождении процессора максимально быстро загрузить его любым процессом из единого множества готовых к выполнению процессов. Наиболее просто стратегия распределения загрузки реализуется на базе симметричной многопроцессорной организации. При этом обеспечиваются следующие преимущества:

  • исключаются простои процессоров при наличии готовых процессов;

  • простота реализации планировщика – при освобождении, любой освободившийся процессор просто выполняет стандартную подпрограмму планировщика, ничего не зная о других процессорах и не учитывая их при планировании;

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

Заметим здесь один интересный момент: простые дисциплины планирования без переключения, например FIFO или SJN, которые были названы малопригодными для применения в однопроцессорных операционных системах, при использовании многопроцессорной организации становятся гораздо более эффективными.

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

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

  • единый пул готовых процессов требует взаимоисключающего доступа со стороны подпрограмм планировщика, следовательно, если на двух или более процессорах подпрограмма планирования запустилась с перекрытием по времени, то возможен простой процессоров из-за взаимоисключений при доступе к данным;

  • процессы часто меняют процессоры, что снижает эффективность использования процессорных кэшей;

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

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

Стратегия максимальной производительности при параллельных вычислениях – бригадное планирование

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

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

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

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