>a method of conserving memory space by directing accesses to what would ordinarily be copies of a piece of data to a single instance instead, by using virtual memory mappings or with explicit support of the program in question.Перевожу:
метод сохранения обьема памяти через перенаправления доступа к тому, что в обычном случае было бы копиями частей данных, к единому екземпляру (данных), используя отображение памяти или с непосредственной поддержкой рассматриваемой программы
Ключевое место здесь - "единый екземпляр". Т.е. одна и та же страница памяти, которая доступна различным процессам.
>так все таки применимо - или тут разные процессы (на разных нодах) не получают доступ к общим данным?
К общим данным - да. Которые будут представлены в виде нескольких копий, как минимум по одной на каждой ноде.
К одной и той же странице памяти - разумеется нет.
Именно общая страница памяти, отображенная в адресное простраство разных процессов, представляет из себя shared memory, независимо от того по какому физическому адресу она находится после подгрузки из файла или свопа пейджером.
>А с точки зрения виртуальной памяти нет никакой разницы - соединили микросхемы в 2х нодах физически или логически.
Микросхемы в двух нодах нельзя соединить физически. Данные из одной ноды можно скопировать на другую множеством способом, но ни один из них не имеет отношения к понятию shared memory, потому что копирование по определению не представляет собою shared instance.
>ps. я понимаю вашу позицию как системотехника, но в данном случае разговор идет о процессах выполняющихся не в ядре, и оперирующими виртуальной памятью.
А я Вашей позиции не понимаю. Я абсолютно доступным языком обьяснил что такое shared memory и почему mmap over network fs им не является. И контекст выполнения процесса (ядро/не ядро) в данном вопросе не играет никакой роли.
PS. Не все то shared memory, что делается через mmap, хотя и может казаться им.