memory management
A collection of techniques for providing sufficient memory to one or more processes in a computer system, especially when the system does not have enough memory to satisfy all processes' requirements simultaneously. Techniques include swapping, paging and virtual memory. Memory management is usually performed mostly by a hardware memory management unit.