It is in the nature of von Neumann architecture computer systems that if a word from memory has been used recently, it is likely to be used again in the near future. Similarly if a word has been used recently, words near it are likely to be used in the relatively near future. Virtual memory is implemented by dividing the portion of the address space used by a program into fixed-size pieces called pages. The size of the pages is a power of two, typically from 512 bytes to about 64 K bytes. We will use a page size of 4 K in the example, and discuss the trade-offs in selecting a page size later.
Real memory is divided into page frames which are the same size as the virtual pages.
When a page is needed during the running of a program, it is copied into a page frame in real memory. The amount of real memory available is called the physical address space. The process of moving program pages to and from real memory is called paging. Paging is transparent to the writer of the program. We have skipped over some details up to now, and one of them is the need for address translation, or mapping.