There are several partitioning algorithms used by the Operating System to find out holes in linked list and allocate them to processes.
Some of these algorithms are: