The mechanisms, both hardware and software, ensuring that processes access storage in a controlled manner. For storage in the high-speed levels of the memory hierarchy, protection is implemented by hardware in order to maintain speed; for slower devices the protection may be entirely by software. In all cases, the intention is to ensure that the type of access made by a process to the storage is in accordance with that indicated when the storage was allocated to the process. For example, in a system with paged memory management a process may be granted access to an area of memory, but only for the purpose of executing the code in that page. Attempts to read from the page or to write to it would be prohibited by the (hardware) protection mechanism.