Memory management is the task of managing the computer memory. With many users running many different processes, there is a great potential for problems concerning memory allocation and the protection of users from accesses to memory and peripherals that are currently being used by other users of the system. This is especially true when software is being tested which may attempt to access memory that does not exist or is already being used. To solve this sort of problem, Linux depends on a memory management unit (MMU) — hardware which divides all the memory and peripherals into sections which are marked as read only, read or write, operating system accesses only, and so on. If a program tries to write to a read only section, an error occurs which the kernel can handle. In addition, the Memory management unit can translate the memory addresses given by the processor to a different address in memory.
The operating system also controls how the memory is accessed and maximizes available storage and memory. Newer operating systems typically manage memory better than older operating systems. The memory-management feature of many operating systems allows the computer to execute program instructions effectively and to speed processing. One way to increase the performance of an old computer is to upgrade to a newer operating system and increase the amount of memory. Most of the operating systems support virtual memory, which allocates space on the hard disk to the supplement the instant, functional memory capacity of the RAM. Virtual memory works by swapping programs or parts of programs between memory and one or more disk devices—a concept called paging. This reduces CPU idle time and increases the mini her of jobs that can run in a given lime span.