Виртуальный адрес представляет собой слой абстракции поверх физических адресов. Физический адрес сопоставляется с определенной строкой в чипе ram. Однако каждый процесс имеет свое виртуальное адресное пространство. Операционная система и аппаратные средства переводят виртуальные адреса в физические при загрузке/хранении.
Один и тот же виртуальный адрес в двух разных процессах обычно преобразуется в две разные области физической памяти. Например, вы можете написать две разные программы, которые загружены главным образом где-то около 0x400000.
Несмотря на то, что 64-битное виртуальное адресное пространство очень велико и может содержать весь код и данные всех исполняемых программ, вы не можете найти код и/или данные другого процесса в своем виртуальном адресном пространстве, если он не отображается на карте операционной системы в несколько процессов.
Один пример с разделяемыми библиотеками. Они загружаются в память, а операционная система отображает физическую память, в которой они находятся, в виртуальное адресное пространство нескольких процессов. Другим встречным примером является разделяемая память IPC (http://en.wikipedia.org/wiki/Shared_memory).
Указанная вами таблица страниц - это механизм, используемый операционной системой для сопоставления виртуальной памяти с физической памятью.