Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТОГОВЫЙ ВАРИАНТ ШПОРЫ.docx
Скачиваний:
7
Добавлен:
23.09.2019
Размер:
814.05 Кб
Скачать

Вопрос 33. Информационные модели систем параллельногодействия: мультипроцессоры и мультикомпьютеры.

Предложены и реализ-ны 2 инф модели взаимодейств-я: мультипроцессоры и мультикомп-ры.

Мультипроцессоры Если все проц-ры разделяют общую физич память, то такая с-ма наз-ся мультипроцес-м.Мультипроц модель распростр-ся и на ПО.Все проц-сы вместе работающие на мультипр-ре могут разделять одно вирутуал адресной простр-во, отображ-ое в общую память. Любой процесс может считывать слово из памяти или записывать слово в память с пом-ю команд LOAD и STORE. Два процесса могут обмен-ся инф-ей, если один из них будет просто записывать данные в память, а другой считывать эти данные. Благодаря такой возм-ти взаимод-я двух и более процессов мультипроцессоры весьма популярны. Примеры мультипроцессоров: Sun Enterprise 10000, Sequent NUMA-Q, SGI Origin 2000 и HP/Convex Exemplar.Выделяют 3 вида мультипроц-в в зав-ти от механизма реализации памяти совместного исп-я:1)UMA(Uniform Memory Access)с однор доступом к памяти, 2) NUMA –с неоднор доступом к памяти, 3) COMA (Cash ..)с доступом только к кеш-памяти. UMA обесп одно и то же время доступа к слову в незав-ти от его распол-я внутри модуля и расстояния модуля от процессора. Эта арх-ра с предсказуемой производит-ю В NUMA доступ к данным существенно зависит от расстояния процессора до модуля с необх-ми данными. NUMA м б как с кеш-памятью ( CC-NUMA), так и без неё(NC-NUMA).Наличие кеш-памяти несколько сглаживает разницу во времени доступа к инф-ии в разных модулях.Однако если объём кеш-памяти сущ-но меньше объёма требуемых данных, произв-ть мультипроц-ра снижается.В арх-ре COMA память каждого проц-ра исп-ся как кеш-память.В ней всё физич адресное простр-во делится на строки, которые мигрируют по сис-ме по мере необх-ти. Такая организация повышает частоту обращения кеш-памяти, повышая тем самым произв-ть с-мы.

Мультикомпьютеры Параллельную арх-ру при кот каждый процессор имеет свою собств память, доступную только этому процессору, наз-т муьтикомп-ром (с-мой с распределённой памятью). Мультикомп-ры обычно явл-ся с-мой со слабой связью. Ключевое отличие мультикомп-ра от мультипроц-ра сост в том, что каждый процессор в мультикомп-ре имеет свою собств уник память, к кот этот процессор может обращаться, выполняя команды LOAD и STORE. След-но. Мультипроц-ры имеют одно физич адрес пр-во, разделяемое всеми процессорами, а мультикомп-ры содержат отдельное физич адр простр-во для каждого процессора.Так как процессоры в мультикомп-ре не могут взаимодействовать друг с другом путём чтения из общей памяти и записи в общую память, необходим другой механизм взаимодействия.Здесь процессоры рассылают друг другу сообщения, используя сеть межсоединений.При отсутствии памяти совместного исп-я в аппаратном обеспечении располагается опр структура ПО. В мультикомп-ре невозможно иметь одно вирт адр пр-во. В мультикомп-ре для взаимодействия между процессорами часто исп-ся примитивы SEND и RECEIVE.Поэтому ПО мультикомп-ра имеет более сложную стр-ру, чем программное обесп-е мультипроц-ра.При этом основной проблемой становится правильное разделение данных и разумное их размещение.В мультипроц-ре размещение частей не влияет на правильность вып-я задачи. Хотя может повлиять на произв-ть.Т.о.,мультикомп-р программировать сложнее, чем мультипроцессор.Т.о.,мультипроц-ры сложно строить, но легко программировать.Поэтому стали предприниматься попытки создания гибридных с-м, которые отн-но легко конструировать и легко прогр-ть.Э то привело к различной реализации совместной памяти. Практически все исследования в области арх-р с паралл обработкой напр на создание гибр форм, кот сочет в себе преимущ-во обеих арх-р.Важно получить такую с-му,кот была бы расширяема. Первый подход к решению такой задачи основан на том, что соврем комп с-мы не монолитны,а состоят из ряда уровней.Это даёт возм-ть реализовать общую память на любом из нескольких уровней.Второй подход:исп-ть аппар обесп-е мультикомп-ра и опер с-му, кот моделирует разделённую память, обеспечивая единое вирт пр-во, разбитое на страницы.При таком подходе(DSM) каждая страница расположена в одном из блоков памяти. Каждая машина сод-т свою собств вирт память и собст таблицы страниц.3ий подход:реализовать общую раздел-ю память на уровне ПО. При таком подходе абстракцию раздел памяти создаёт язык прогр-я и эта абстракция реализ-ся компилятором.

BOПРОС 34. ТЕХНОЛОГИЯ СОКРАЩЕНИЯ ВРЕМЕНИ ОЖИДАНИЯ В МУЛЬТИПРОЦЕССОРАХ И МУЛЬТИКОМПЬЮТЕРАХ

Добавление процессоров к шине не увеличивает диаметр сети или время ожидания при отсутствии трафика а добавление процессоров к решетке, напротив, увеличивает. Диаметр решетки n*n равен 2(n-1), поэтому в худшем случае время ожидания растет примерно как квадратный корень от числа процессоров. В идеале расширяемая система при добавлении новых процессоров должна сохранять одну и ту же среднюю пропускную способность на каждый процессор и постоянное среднее время ожидания. На практике сохранение достаточной пропускной способности на каждый процессор осуществимо, но время ожидания растет с увеличением размера.

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

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

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

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

Третья технология - это многопоточная обработка. В большинстве современных систем поддерживается мультипрограммирование, при котором несколько процессов могут работать одновременно (либо создавать иллюзию параллельной работы на основе разделения времени). Если переключение между процессами можно совершать достаточно быстро, например, предоставляя каждому из них его собственную схему распределения памяти и аппаратные регистры, то когда один процесс блокируется и ожидает прибытия данных, аппаратное обеспечение может быстро переключиться на другой процесс. Некоторые машины автоматически переключаются от процесса к процессу посте каждой команды, чтобы скрыть длительное время ожидания. Эта идея была реализована в одном из первых суперкомпьютеров CDC 6600. Было объявлено, что он содержит 10 периферийных процессоров, которые работают параллельно. А на самом деле он содержал только один периферийный процессор, который моделировал 10 процессоров. Он выполнял по порядку по одной команде из каждого процессора, сначала одну команду из процессора 1, затем одну команду из процессора 2 и т. д. ВОПРОС 38. МЕТОДЫ СИНХРОНИЗАЦИИ ПРОЦЕССОВ. Процессы, выполняемые в мультипрограммном режиме, можно рассматривать как набор последовательных слабосвязанных процессов, которые действуют почти независимо друг от друга, лишь изредка используя общие ресурсы. Взаимосвязь между такими процессами устанавливается с помощью различных сообщений и так называемого механизма синхронизации, который позволяет согласовывать и координировать работу процессов. Хотя каждый процесс, выполняемый в мультипрограммном режиме, имеет доступ к общим ресурсам, существует некоторая область, которую в фиксированный момент времени может использовать лишь один процесс. Нарушение этого условия приведет к неизвестному порядку обработки процессов. Назовем такую область критической. При использовании критической области возникают различные проблемы, среди которых можно выделить проблемы состязания (гонок) и тупиков (клинчей). Условие состязания возникает, когда процессы настолько связаны между собой, что порядок их выполнения влияет на результат операции. Условие тупиков появляется, если два взаимосвязанных процесса блокируют друг друга при обращении к критической области. В системах, допускающих перераспределение любых ресурсов в произвольной последовательности, но имеющей и не освобожденные ресурсы, время от времени должны возникать тупиковые ситуации. Пример. Пусть программе А нужен ресурс R1. Она запрашивает его и получает. Программе В нужен ресурс R2. Она запрашивает его и получает . Далее, пусть программа А, не отпуская R1, запрашивает R2, а программа В, не отпуская R2, запрашивает R1. Налицо типичный клинч, если только один из ресурсов R1 или R2 не может быть Освобожден до момента простейшие приемы синхронизации оборудованием. Простейший прием - стандартные операции типа WAIT (ЖДАТЬ) и SIGNAI, (ОПОВЕСТИТЬ). Операция WAIT позволяет: временно заблокировать процесс, a SIGNAL информирует систему о необходимости разблокирования процесса, задержанного из-за невыполнения условия. Следует отметить такие приемы, как БЛОКИРОВКА ПАМЯТИ (для реализации взаимного исключения одному процессу разрешается выполнить операцию над памятью, а другому ждать, пока первый не завершит работу); ПРОВЕРКА и УСТАНОВКА (аппаратная операция, к которой обращаются с двумя параметрами: ЛОКАЛЬНЫЙ И ОБЩИЙ). Наиболее эффективным и простым средством синхронизации процессов, исключающим состояние “активного" ожидания, является семафор.

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