Virtual Memory

A machine-level program view the computer memory as a very large array of bytes, referred to as Virtual Memory. Every byte of a memory is identified by a unique number, known as its address, and the set of all possible addresses is known as the virtual address space.

The virtual address space is just a conceptual image. The actual implementation uses a combination of dynamic random access memory (DRAM), flash memory, disk storage, special hardware, and operating system software to provide the program with what appears to be a monolithic byte array.