Use of memory management unit

C
Memory management unit keeps track of each and every memory
location, regardless of either it is allocated to some 
process or it is free. It checks how much memory is to be
allocated to processes. It decides which process will get 
memory at what time. It tracks whenever some memory gets 
freed or unallocated and correspondingly it updates the 
status.
Source

Also in C: