Virtual Address Space
Virtual address spaces refer to a memory management technique where each process or program is given a separate space of memory addresses. The platform provides a mapping of these virtual addresses to physical addresses. This allows multiple processes to run concurrently without interfering with each other's memory, as each process can access only its own virtual address space. Virtual address spaces can be much larger than the actual physical RAM.
Page Tables
The mapping from virtual to physical addresses is achieved using page tables. A page table can be used directly by the CPU in order to perform address translation at page-size granularity (e.g. 4kB on x64 Windows, 16 kB on an iPhone).
If a virtual address is unmapped, then a page fault exception will be issued by the CPU, and execution is interrupted. Typically, the operating system takes over execution at this point.