Аллокатор (англ. Allocator) или распределитель памяти в программировании — специализированный класс, реализующий и инкапсулирующий малозначимые (с прикладной точки зрения) детали распределения и освобождения ресурсов компьютерной памяти.
Плюс в целом желательно, чтобы вы ознакомились с понятием аллокатора и какими-то основами этой темы (первые слайдов 10-15 из презентахи с последней практики)
Одна из версий алгоритма распределения друзей была подробно описана Дональдом Кнутом в первом томе книги «Искусство компьютерного программирования».
Используется в составе многих современных операционных систем для динамического распределения памяти в ядре системы, драйверах или в других ответственных компонентах системы, критичных к скорости работы.
Ядро линукса основано на методе двоичных близнецов (с модификациями, конечно) !
Это часть примера с вики, полностью смотреть тут