Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В информатике , распределенная разделяемая память ( DSM ) является одной из форм архитектуры памяти , где физически отделенные воспоминания могут быть рассмотрены в качестве одного из логически общих адресного пространства. Здесь термин «совместно используемая» не означает, что существует одна централизованная память, а означает, что адресное пространство является «совместно используемым» (один и тот же физический адрес на двух процессорах относится к одному и тому же месту в памяти). [1] : 201 Распределенные глобальные адресное пространство ( DGAS ), представляет собой аналогичный термин для широкого класса программных и аппаратных реализаций, в которой каждый узел из кластера имеет доступ кразделяемая память в дополнение к неразделенной частной памяти каждого узла .

Система с распределенной памятью, часто называемая мультикомпьютером , состоит из нескольких независимых узлов обработки с локальными модулями памяти, которые связаны общей сетью межсоединений. Программные системы DSM могут быть реализованы в операционной системе или как программная библиотека и могут рассматриваться как расширения базовой архитектуры виртуальной памяти . При реализации в операционной системе такие системы прозрачны для разработчика; что означает, что основная распределенная памятьполностью скрыт от пользователей. Напротив, программные системы DSM, реализованные на уровне библиотеки или языка, непрозрачны, и разработчикам обычно приходится программировать их по-другому. Однако эти системы предлагают более переносимый подход к реализациям системы DSM. Распределенная система реализует совместно хранятся в памяти общей памяти модели на физически распределенной системе памяти.

Методы достижения DSM [ править ]

Обычно есть два метода достижения распределенной разделяемой памяти:

  • аппаратное обеспечение, такое как схемы согласования кэша и сетевые интерфейсы
  • программного обеспечения

Программная реализация DSM [ править ]

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

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

Передача сообщений против DSM [ править ]

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

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

Абстрактный вид [ править ]

РИСУНОК DSM

Преимущества [ править ]

  • Хорошо масштабируется при большом количестве узлов
  • Передача сообщений скрыта
  • Может обрабатывать сложные и большие базы данных без репликации или отправки данных в процессы
  • Обычно дешевле, чем использование многопроцессорной системы
  • Предоставляет большое пространство виртуальной памяти
  • Программы более переносимы за счет общих интерфейсов программирования
  • Защищайте программистов от отправки или получения примитивов

Недостатки [ править ]

  • Обычно медленнее, чем нераспределенная разделяемая память
  • Должен обеспечивать дополнительную защиту от одновременного доступа к общим данным
  • Может повлечь за собой штраф за производительность
  • Небольшой контроль программиста над генерируемыми сообщениями
  • Программистам необходимо понимать модели согласованности, чтобы писать правильные программы.
  • Реализации DSM используют асинхронную передачу сообщений и, следовательно, не могут быть более эффективными, чем реализации передачи сообщений.

Согласованность памяти директории [ править ]

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

Штаты [ править ]

Базовый DSM будет отслеживать по крайней мере три состояния среди узлов для любого данного блока в каталоге. [2] Будет какое-то состояние, определяющее блок как некэшированный (U), состояние, определяющее блок как исключительно принадлежащий или модифицированный (EM), и состояние, определяющее блок как совместно используемый (S). Когда блоки входят в организацию каталога, они переходят из U в EM (состояние владения) в начальном узле, затем состояние может переходить в S, когда другие узлы начинают читать блок.

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

Диаграмма состояний блока памяти в DSM. Блок считается «принадлежащим», если один из узлов имеет блок в состоянии EM.

Домашний запрос и ответ [ править ]

В системе, ориентированной на дом, DSM избегает необходимости обрабатывать гонки запросов и ответов между узлами, позволяя выполнять только одну транзакцию за раз, пока домашний узел не решит, что транзакция завершена - обычно, когда дом получил все ответные процессоры ответ на запрос. Примером этого является режим домашнего источника Intel QPI . [3]

Преимущества [ править ]

  • Гонки данных невозможны
  • Просто реализовать

Недостатки [ править ]

  • Медленная, буферизованная стратегия запроса-ответа, ограниченная домашним узлом

Запрос и ответ, ориентированные на запросчика [ править ]

В системе, ориентированной на запросы, DSM позволяет узлам по желанию общаться друг с другом через дом. Это означает, что несколько узлов могут попытаться начать транзакцию, но это требует дополнительных соображений для обеспечения согласованности. Например: когда один узел обрабатывает блок, если он получает запрос на этот блок от другого узла, он отправляет NAck (отрицательное подтверждение), чтобы сообщить инициатору, что узел обработки не может выполнить этот запрос сразу. Примером этого является режим отслеживания источника Intel QPI. [3]

Преимущества [ править ]

  • Быстрый

Недостатки [ править ]

  • Естественно, не предотвращает состояние гонки
  • Увеличивает автобусный трафик

Модели согласованности [ править ]

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

Предположим, у нас есть n процессов и операций с памятью Mi для каждого процесса i , и что все операции выполняются последовательно. Мы можем заключить, что ( M1 + M2 +… + Mn )! / ( M1 ! M2 !… Mn !) - возможные чередования операций. Проблема с этим выводом заключается в определении правильности чередующихся операций. Согласованность памяти для DSM определяет, какие чередования разрешены.

Репликация [ править ]

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

  • Уменьшите сетевой трафик
  • Способствовать усилению параллелизма
  • Приводит к меньшему количеству ошибок страниц

Однако сохранение согласованности и последовательности может стать более сложной задачей.

Согласованность выпуска и записи [ править ]

  • Согласованность выпуска: когда процесс выходит из критического раздела , новые значения переменных распространяются на все сайты.
  • Согласованность ввода: когда процесс входит в критическую секцию, он автоматически обновляет значения общих переменных.
    • Согласованность на основе представления: это вариант согласованности ввода, за исключением того, что общие переменные критического раздела автоматически обнаруживаются системой. Реализацией согласованности на основе представлений является VODCA, который имеет сопоставимую производительность с MPI на кластерных компьютерах.

Примеры [ править ]

  • Kerrighed
  • OpenSSI
  • MOSIX
  • Маркировка протектора
  • VODCA
  • DIPC

См. Также [ править ]

  • Распределенный кеш
  • Виртуализация памяти
  • Односистемный образ

Ссылки [ править ]

  1. ^ Паттерсон, Дэвид А .; Хеннесси, Джон Л. (2006). Компьютерная архитектура: количественный подход (4-е изд.). Берлингтон, Массачусетс: Морган Кауфманн. ISBN 978-01-2370490-0.
  2. ^ Солихин, Ян (2015). Основы параллельной многоядерной архитектуры . Бока-Ратон, Флорида: Чепмен и Холл / CRC. С. 339–340. ISBN 9781482211184.
  3. ^ a b Сорин, Дэниел Дж .; Хилл, Марк Д .; Вуд, Дэвид А. (2011). Учебник по согласованности памяти и согласованности кеша . Морган и Клейпул. п. 174. ISBN 978-16-0845564-5.

Внешние ссылки [ править ]

  • Распределенный общий кэш
  • Когерентность памяти в совместно используемых системах виртуальной памяти Кай Ли, Пол Худак, опубликованные в ACM Transactions on Computer Systems, Volume 7 Issue 4, Nov.1989