Как мы уже отмечали выше, вычисления в мультикомпьютере обычно базируются на модели обмена данными между процессами посредством передачи сообщений. Альтернативой является модель обмена данными через общую память – DSM-модель обмена данными (Distributed Shared Memory – распределенная совместно используемая память).
В программе, использующей для обмена данными модель передачи сообщений, программист обеспечивает доступ к данным посредством явных операций посылки и приема сообщений. Это обстоятельство сильно усложняет программирование и отладку программы. DSM-модель обмена данными скрывает от программиста пересылку данных и обеспечивает ему абстракцию разделяемой памяти (привычной для него по опыту работы на традиционных ЭВМ и мультипроцессорах). В результате программирование и отладка с использованием DSM-модели обмена данными становится гораздо проще.
Кроме того, в модели передачи сообщений данные перемещаются между двумя различными адресными пространствами. Как отмечалось, это делает очень трудным передачу между процессорами сложных структур данных, содержащих, например, указатели. В DSM-модели возможна передача данные по ссылке, что упрощает разработку распределенных приложений.
Основной целью управления распределенной оперативной памятью мультикомпьютера является создание виртуального адресного пространства, разделяемое всеми процессорами распределенной системы. Процессы, выполняемые на разных процессорах, должны получать доступ к данным в распределенной памяти системы примерно так же, как это происходит с данными в виртуальной памяти традиционных ЭВМ.
При реализации системы управления распределенной оперативной памятью центральными являются следующие вопросы:
Обычно системы управления распределенной оперативной памятью используют страничную организацию распределенной памяти. Суммарная оперативная память системы разбивается на порции одинаковой длины - страницы. Длина этих страниц принимается равной (или кратной) длине страницы оперативной памяти процессоров (если их память страничная).
Миграционный алгоритм управления распределенной памятью.
Приведем схему миграционного алгоритма управления распределенной памятью.
Приведенную схему миграционного алгоритма управления распределенной памятью иллюстрируют рис. 1, рис. 2. Процесс , выполняемый на процессоре , запрашивает страницу памяти 4, которая отсутствует в оперативной памяти процессора , но находится в оперативной памяти процессора (рис. 1). Процессор пересылает страницу памяти 4 в оперативную память процессора (рис. 2).
Миграционный алгоритм позволяет последовательные обращения к одним и тем же данным осуществлять локально, в пределах оперативной памяти только данного процессора. Однако при этом в любой момент времени возможно обращение к одному элементу данных только одному процессу.
Перемещение страницы данных, а не необходимой единицы данных, позволяет воспользоваться присущей приложениям локальностью доступа к данным для снижения накладных расходов на миграцию данных. Однако такой подход может привести к трэшингу (trashing), когда страницы очень часто мигрируют между процессорами при малом количестве обслуживаемых запросов. Для преодоления этого недостатка некоторые мультикомпьютерные ОС позволяют задать время, в течение которого страница насильно удерживается в процессоре для того, чтобы приложение могло успеть выполнить несколько обращений к этой странице до ее миграции в другой узел.
Рис. 1.  К миграционному алгоритму управления распределенной памятью. Исходное расположение страниц памяти.
Рис. 2.  К миграционному алгоритму управления распределенной памятью. Расположение страниц памяти после миграции страницы 4.
Для определения места расположения страниц данных миграционный алгоритм может использовать один из процессоров, отслеживающий перемещения блоков, либо механизм подсказок на каждом из процессоров. Возможна также широковещательная рассылка запросов.
Алгоритм репликации для управления распределенной памятью.
Алгоритм репликации для управления распределенной память представляет собой развитие алгоритма миграции, направленное на повышение производительности доступа к распределенной памяти. Данный алгоритм расширяет миграционный алгоритм механизмом размножения страниц данных. Производительность при этом повышается за счет возможности одновременного доступа к данным по чтению. Недостатком алгоритма является необходимость отслеживания расположение всех страниц данных и их копий, а также значительные затраты на уничтожение всех устаревших копий страниц или их коррекции.
Положим, что имеет место исходное расположение страниц памяти, представленное на рис. 1. Процесс , выполняемый на процессоре , запрашивает страницу памяти 4, которая отсутствует в оперативной памяти процессора , но находится в оперативной памяти процессора . Процессор пересылает копию страницу памяти 4 в оперативную память процессора (см. рис. 3).
Рис. 3.  К алгоритму размножения для управления распределенной памятью. Расположение страниц памяти после размножения страницы 4.
Алгоритм полного размножения для управления распределенной памятью.
Алгоритм полного размножения для управления распределенной памятью является расширением предыдущего алгоритма и заключается в репликации всех страниц. Алгоритм позволяет многим процессорам иметь одновременный доступ к разделяемым данным на чтение и запись. Поскольку процессоры могут записывать данные параллельно, возникает проблема обеспечения консистентности данных.
Одним из простейших способов обеспечения консистентности данных является использование специального процесса для управления модификациями памяти. Схема использования этого процесса:
Для обеспечения консистентности данных могут также использоваться бинарные семафоры. Для того чтобы получить возможность записать данные на какую-либо страницу виртуального адресного пространства мультикомпьютера, процесс должен сначала получить доступ к семафору, который связан с этой страницей (и со всеми копиями этой страницы). Доступ некоторого процесса к семафору данной страницы запрещает чтение и запись данных в эту страницу и во все ее копии другим процессам. После освобождения семафора ОС вносит соответствующие изменения в данные, размещенные на всех копиях данной страницы, и разрешает доступ к этим копиям

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