The most important resource is memory, that must be carefully managed.
Basically every programmer or even normal computer programmer or user wants infinitely large and fast memory. And the memory is also non-volatile memory, means a memory that doesn't lose its content when the power supply stops.
Memory manager manages the memory hierarchy in OS. The work of memory manager is to keep track that which part of the memory are in use and which part of the memory are not in use just to allocate the memory to processes whenever they need and when their works are done, then deallocate that part of memory.
There is another work of memory manager which is to manage the swapping between main memory and disk when main memory is too small to hold all the processes.
Memory management systems basically divided into the following two classes:
Now-a-day, efficient memory management must be performed because softwares are growing even faster than memory.
You will learn all about memory management in detail, divided into the following tutorials: