Virtual Memory

3
virtual address (also known as logical address) In a virtual memory (1) system, the addresses that application programs deal with are known as virtual addresses. The virtual addresses used by the application program are translated by the virtual memory system (often using TLB s and page-tables ) to physical addresses . It is the physical address that is used to retrieve the contents from the memory (3) . Opposites: physical address . virtual address space The virtual address space is the space of virtual addresses . On virtual memory (1) systems, user processes see the virtual address space, and commonly have a separate virtual address space each, so that they map the same addresses to different data. These systems often have shared memory as well. Opposites: physical address space . virtual memory (1) (also known as VM(1)) In a virtual memory (VM) system, the program code deals with virtual addresses . Upon use, the virtual address is translated by the MMU to obtain a physical address that is used to access physical memory (1) . Some operating systems can simulate having more memory (2) than is available as main memory , by storing part of the data in backing store , typically on disk. If the page referenced by the virtual address is not currently in main memory, a page fault occurs, triggering an operating system handler that swaps in

Transcript of Virtual Memory

virtual address (also known as logical address)

virtual address (also known as logical address)

In a virtual memory(1) system, the addresses that application programs deal with are known as virtual addresses.

The virtual addresses used by the application program are translated by the virtual memory system (often using TLBs and page-tables) to physical addresses. It is the physical address that is used to retrieve the contents from the memory(3).

Opposites: physical address.

virtual address space

The virtual address space is the space of virtual addresses.

On virtual memory(1) systems, user processes see the virtual address space, and commonly have a separate virtual address space each, so that they map the same addresses to different data. These systems often have shared memory as well.

Opposites: physical address space.

virtual memory(1) (also known as VM(1))

In a virtual memory (VM) system, the program code deals with virtual addresses. Upon use, the virtual address is translated by the MMU to obtain a physical address that is used to access physical memory(1).

Some operating systems can simulate having more memory(2) than is available as main memory, by storing part of the data in backing store, typically on disk. If the page referenced by the virtual address is not currently in main memory, a page fault occurs, triggering an operating system handler that swaps in the page. Some other page might be swapped out to make room.

Each process typically has its own separate virtual address space with its own mappings and protections.

Example of the relationship between the virtual address spaces of two processes, physical memory, and backing store

Virtual memory technology can be used in many useful memory management techniques, such as barriers(1), copy-on-write, and memory mapping.

"Virtual" means never knowing where your next byte is coming from.

Opposites: real memory(1). See also: paging; paged in; paged out; swapping; swap space; mapped; reserved; unmapped; shared memory.

VM(1) (for full details, see virtual memory(1))

In a virtual memory (VM) system, the program code deals with virtual addresses. Upon use, the virtual address is translated by the MMU to obtain a physical address that is used to access physical memory(1).

VM(2)

In the PostScript language, VM is the storage where the values of the composite objects reside.

VM is short for "virtual memory", but this has nothing to do with the usual sense of the phrase (see virtual memory(1)).