The purpose of the memory management system is to load programs into memory in such a way as to give each program loaded the memory that it requires for execution.
In multiprogramming operating system there are many programs residing in the memory simultaneously in the memory. The memory management system has three primary tasks. It attempts to perform these tasks in a way that is fair and efficient to the programs that must be loaded and executed.
1. It keeps track of which parts of the memory are currently being used and by which process into memory together with the space being used and also keeps track of available space.
2. It maintains one or more queues of programs waiting to be loaded into memory as space becomes available, based on such program criteria as priority and memory requirements.
3. When space is available, it allocates memory to the programs that are next to be loaded. It also de-allocates a program's memory space when it completes execution.
The de-allocated space is made available for other programs.