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

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

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

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

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

Чтобы назвать несколько, яМы видели много описаний того, как реализовать:

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

И это'Забавно, все они избегают более сложного вопроса:

Как "нормальный", кучи общего назначения (как та, что позади,mallocHeapCreate) реализовано?

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

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

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