Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!Экзаменационные вопросы_003.rtf
Скачиваний:
16
Добавлен:
19.09.2019
Размер:
17.62 Mб
Скачать
  1. Модели с ослаблением состоятельности.

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

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

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

Другая модель - «освобождения», предложена разработчиками DASH из Стенфорда. Этот механизм предусматривает разделение обращений к памяти на обычные и синхронизирующие. Синхронизирующие, в свою очередь, делятся на запрос и освобождение. Запрос сигнализирует, что данные нужны, и до момента освобождения не гарантируется выполнение запросов другими процессорами. Снова, это требует явного указания запросов и освобождения программистом. Однако, в отличие от предыдущей модели, не требуется, чтобы:

- все синхронизации были вып-ны ДО обычного обращения;

- все обычные обращения были выполнены до синхронизации;

  1. Схемы, основанные на каталогах.

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

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

Метод, который допускает существование нескольких чистых копий, но 1 грязной. При этой схеме, каждый кэш поддерживает бит модификации для каждой строки и в каталоге в ОП хранится копия всех тегов и этих битов. При RM в центральном каталоге проверяется, не является ли этот блок грязным в другом кэше. Если да, то он оттуда копируется в память, а затем читается. Иначе читается прямо из памяти. Затем информация в каталоге обновляется, показывая наличие чистой копии данных в кэше. При WM центральный каталог также проверяется. И в этом случае, если блок грязный, он сначала записывается в память. Если нет, он делается недействительным в других кэшах. Затем данные переносятся в запрашивающий кэш и в каталоге опмечается, что они грязные. При WH проверяется бит модификации кэша. Если он уже модифицирован, запись выполняется немедленно. Если чист, каталог информируется о модификации, и затем этот блок во всех кэшах помечается как недействительный.

Аналогичный алгоритм, отличающийся организацией каталога. Здесь для каждого блока хранятся биты модификации в количестве, равном количеству кэшей. Иная организация каталога. Он хранит 2 бита – 4 сост (не кэш, в одном, в многих, модифицирован). В этом случае не хранится информация, в каком кэше модифицированы данные, и требуется широковещание.