What is Virtual Memory?

Virtual memory is a technique used to give applications the appearance that they are working in one large contiguous memory space even though that may not be physically true. The virtual memory may actually be mapped to different areas of memory or even the hard disk but the program has no inkling of this.