Virtual address

From Computer History Wiki
Revision as of 19:46, 21 September 2017 by Jnc (talk | contribs) (Avoid redir)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

A virtual address is an address emitted by code running when it is not running on a 'bare machine' (i.e. the machine is not using a 1:1 correspondence between the addresses used by code running in the CPU, and the actual addresses of main memory) (often referred to as physical addresses).

When running a time-sharing operating system, the hardware provides mapping of memory addresses emitting by code belonging to a user/process, to protect both the OS itself, and other users/processes, from errors or malicious behaviour.

Originally this protection was provided by 'base and bounds registers', which allowed the entire memory of a user/process to be relocated into a contiguous block of main memory. Now, virtual memory is usually used, which provides this protection/relocation as one of its many benefits.