In operating systems that use virtual memory, every process is given the impression that it is working with large, contiguous sections of memory.
When a process requests access to data in its memory, it is the responsibility of the operating system to map the virtual address provided by the process to the physical address of the actual memory where that data is stored.