<<
>>

Фрагментация памяти в куче

Вспомним, что заполнение кучи начинается с одного большого блока свободного пространства. В ходе вычислений этот блок постепенно разбивается на меньшие блоки посредством процедур выделения памяти, ее восстановления и повторного использования.
При этом блоки свободного пространства расщепляются на все более

388

Глава 14. Управление подпрограммами

мелкие области. В конце концов, наступит момент, когда менеджер распределения памяти не сможет удовлетворить запрос на блок из N слов, поскольку не окажется ни одного достаточно большого блока, хотя в целом список свободного пространства содержит гораздо больше, чем N слов свободной памяти. В итоге, из-за нехватки свободной памяти выполнение программы останавливается задолго до того, когда на самом деле исчезнут ресурсы памяти. Таким образом, возникает потребность дефрагментации кучи: объединения свободных блоков в блоки большего размера. Возможны два подхода к дефрагментации:

1. Частичная дефрагментация. Если активные блоки кучи нельзя перемещать (или перемещение обходится слишком дорого), то можно объединять только смежные блоки из списка свободного пространства.

2. Полная дефрагментация. Если активные блоки можно перемещать, тогда все активные блоки перемещаются в один конец кучи, а все свободное пространство оказывается сосредоточенным на другом конце, в одном непрерывном блоке. Полная дефрагментация подразумевает, что при перемещении активного блока все указатели на него модифицируются нужным образом и способны указать на его новое местоположение.

<< | >>

Еще по теме Фрагментация памяти в куче:

  1. ПРЕДСТАВЛЕНИЕ ПАМЯТИ
  2. Гигиена памяти.
  3. укрепление памяти
  4. ТЕОРИЯ ПАМЯТИ
  5. V. 2. 5. Структура парциального хранилища памяти.
  6. Сила памяти
  7. В психологии различают четыре типа памяти.
  8. V. 2. МОДЕЛЬ ПАРЦИАЛЬНОГО ХРАНИЛИЩА ПАМЯТИ ЧЕЛОВЕКА
  9. следующие виды памяти
  10. Энерго-информационные ключи к памяти Атлантиды
  11. Роль памяти и воображения
  12. 9.2. БАРЬЕРЫ ПАМЯТИ
  13. 9.11. С ПОМОЩЬЮ ПАМЯТИ
  14. 4.7. МЕТОД ПОРТАТИВНОГО БАНКА ПАМЯТИ
  15. Игры на развитие памяти