Представление кучи и стека

1,00
р.
Как физически выглядят куча и стек в оперативной памяти?


Ответ
И стек и куча оба находятся физически в RAM (не рассматриваем архитектурные вывихи с использованием спец. процессоров/компов) Их размеры и расположение определяются осью При этом куча может быть фрагментирована (иногда довольно сильно). Обычно у осей бывают специальные процедуры для дефрагментации кучи. Стек обычно никогда не фрагментирован (наверное можно придумать реализации стека с фрагментацией, но это оксюморон). Стек как бы быстрее потому, что у него единственный параметр с которым работает - это указатель положения стека (обычно регистр) - поэтому все операции со стеком работают в разы быстрее чем с кучей. Операция извлечения/записи из стека это 1 телодвижение процессора POP/PUSH С кучей сложнее именно из-за его фрагментации и простая операция извлечения значения из него может вылиться в десятки (если не сотни) телодвижений процессора. Минусы стека в малости его размера (он всегда по сравнению с кучей на порядок меньше) - ну и в том, что доступ к нему только последовательный.