In a virtual-memory system, physical memory in the system is divided into fixed-size chunks called "pages", typically 4K or 8K in size. The CPU then uses a "page table" to associate virtual addresses (as used in instructions) with physical addresses. The operating system associates a page table with each running process.
Information the page table associates with each virtual page:
Pages can be shared between processes, usually to reduce duplication of common code or (read-only) data.
When all physical memory pages have been allocated to processes, the OS can choose to toss out pages that can be replaced from executable files, or copy pages to a swap area on disk, marking those pages as "not present" in the page tables
When the amount of virtual memory needed exceeds the physical memory available, performance degrades as the OS spends more and more time moving pages in and out of swap.
This tends to be a little clearer with some visual aids (PDF figures):