As we know that there are many problems arise in the continues memory allocation so that we uses the concept of the dynamic memory allocation. In the dynamic memory allocation memory is divided into the various partitions at the run time.
In this when a execution request of a process has to be made, then the memory is partition according to the size which is needed by the processes so that there will not be the internal and external fragmentation. In this when a process requested for some memory then the needed memory will be allocated by the process so that there will not be the case when some memory spaces will be the left.
The memory spaces will be provided up to that time, when the ability of performing the number of programs doesn’t comes to end or up to that time when the space of the hard disk never comes to an end.
The dynamic memory allocation also provides us the compaction. In the compaction the memory areas those are free and those are not allocated by the process, will be combined and makes a single large memory part.
Because as we know that when we execute the processes then the processes many not allocate the small amount of spaces so for avoiding this problem and to use the small areas we can use the compaction, which will combine all the free memory spaces and makes a single area so that the newly large area can again be used by the process.