Difference between revisions of "Virtual address"
m (+cat) |
m (Split 'physical address' into a separate page) |
||
| Line 1: | Line 1: | ||
| − | A '''virtual address''' is an address emitted by [[object code|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 [[Central Processing Unit|CPU]], and the actual addresses of [[main memory]], the latter often referred to as | + | A '''virtual address''' is an address emitted by [[object code|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 [[Central Processing Unit|CPU]], and the actual addresses of [[main memory]], the latter often referred to as [[physical address]]es). |
When running a [[time-sharing]] [[operating system]], the [[memory management]] [[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. | When running a [[time-sharing]] [[operating system]], the [[memory management]] [[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. | ||
Revision as of 17:29, 26 October 2025
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, the latter often referred to as physical addresses).
When running a time-sharing operating system, the memory management 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.