Какая структура данных используется для реализации динамической памяти?

Я всегда предполагалкуча (структура данных) используется для реализациикуча (динамическое распределение памяти), но мне сказали, что я не прав.

Как работают кучи (например, тот, который реализован типичнымmalloc подпрограммы или WindowsHeapCreateи т.д.) реализовано, как правило? Какие структуры данных они используют?

Что яне спрашивая:

При поиске в Интернете я виделтонны описания того, как реализовать кучис жесткими ограничениями.
Чтобы назвать несколько, я видел много описаний того, как реализовать:

Кучи, которые никогда не освобождают память обратно в ОС (!)Кучи, которые дают разумную производительность только на небольших блоках одинакового размераКучи, которые дают разумную производительность только для больших смежных блокови т.п.

И это забавно, они все избегают более сложного вопроса:
Как "нормальные", кучи общего назначения (как та, что позадиmalloc, HeapCreate) реализовано?

Какие структуры данных (и, возможно, алгоритмы) они используют?

Ответы на вопрос(2)

Ваш ответ на вопрос