Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1. ИТТ заочн., конспект лекций (2015-16).docx
Скачиваний:
287
Добавлен:
15.03.2016
Размер:
12.76 Mб
Скачать

1.2.4. Мультипроцессорная обработка

Мультипроцессорная обработка — это способ организации вычисли­тельного процесса в системах с несколькими процессорами. В отличие от организации мультипрограммирования на одном процессоре муль­типроцессорная обработка предполагает действительно одновремен­ное выполнение нескольких процессов. Это приводит к усложнению всех алгоритмов ОС.

Симметричная архитектура предполагает однородность всех про­цессоров и единообразное их включение в общую схему. Традиционно все процессоры при этом разделяют одну память и как следствие на­ходятся в одном корпусе.

При асимметричной архитектуре процессоры могут отличаться свои­ми техническими характеристиками и функциональной ролью. Требо­вание единого корпуса отсутствует. Система может состоять из несколь­ких корпусов (в каждом может быть один или несколько процессоров). Такие устройства называются кластерами.

Для симметричной архитектуры вычислительный процесс может строиться симметричным образом (все процессоры равноправны) или асимметричным (процессоры различаются функционально). Дтя асим­метричной архитектуры возможен только асимметричный способ ор-

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

Основное достоинство мультипроцессора — высокая производи­тельность, которая достигается за счет параллельной или конвейерной работы нескольких процессоров. Так как при наличии общей памяти взаимодействие процессоров происходит очень быстро, мультипро­цессоры могут эффективно выполнять даже приложения с высокой

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

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

Для распараллеливания необходимо соответствующим образом ор­ганизовать вычисления. Сюда входит следующее:

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

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

Рассмотрим граф, описывающий последовательность процессов большой программы, представленный на рис. 3. Видно, что выполне­ние процесса Р} не может начаться до завершения процессов Р2 и Р} и, в свою очередь, выполнение процессов Р2 и Pi не может начаться до завершения процесса Ру В данном случае для выполнения программы достаточно трех процессоров.

Ускорение обработки на мультипроцессоре определяется отноше­нием времени однопроцессорной обработки к времени многопроцес­сорной обработки:

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

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

Последовательные конвейеры. На рис. 4, а показано устройство обработки команд, в котором имеется четыре ступени: выборка команды из памяти, декодирование, определение адреса и выборка операнда, исполнение.

Ускорение обработки в данном устройстве измеряется отношением времени Ts, необходимого для последовательного выполнения L заданий (т. е. выполнения L циклов на одной обрабатывающей ступени), ко времени Тр выполнения той же обработки на конвейере.

Классификация архитектур многопроцессорных систем. Мультипро­цессоры, ориентированные на достижение сверхбольших скоростей работы, могут содержать по нескольку сравнительно простых процес­соров с упрощенными блоками управления. Удачной для различных мультипроцессоров является классификация Флина, которая строится по признаку одинарности или множественности потоков команд и данных

Структура ОКОД (один поток команд, один поток данных) — одно­процессорная ЭВМ (рис. 5).

Структура ОКМД (один поток команд, много потоков данных) — ма­тричная многопроцессорная структура. Система содержит некоторое число одинаковых сравнительно простых быстродействующих про­цессоров, соединенных друг с другом и с памятью данных регулярным образом так, что образуется сетка (матрица), в узлах которой разме­щаются процессоры (рис. 6). Возникает сложная задача распаралле­ливания алгоритмов решаемых задач для обеспечения загрузки про­цессоров. В ряде случаев эти вопросы лучше решаются в конвейерной системе.

Структура МКОД (много потоков команд, один поток данных) — кон­вейерная многопроцессорная структура (рис. 7). Система имеет регу-

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

Процессоры образуют конвейер, на вход которого одинарный поток данных доставляет операнды из памяти. Каждый процессор обраба­тывает соответствующую часть задачи, передавая результаты соответ­ствующему процессору, который использует их в качестве исходных данных. Таким образом, решение задач для некоторых исходных дан­ных развертывается последовательно в конвейерной цепочке. Это обе­спечивает подведение к каждому процессору своего потока команд, т. е. имеется множественный поток команд. Структура МКМД (много потоков команд, много потоков данных) представлена на рис. 8.

Существует несколько типов МКМД: мультипроцессорные систе­мы, системы с мультиобработкой, многомашинные системы, компью­терные сети.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]