Реферат: Распределение памяти

блок приобретает следующий вид:

┌────────┬────────┬─────────┬────────┬──────────────────────┐

│ Занято │ Занято │ ... │ Занято │ Свободно │

└────────┴────────┴─────────┴────────┴──────────────────────┘

Заметим, что размеры занятых областей могут быть

разными. В некоторый момент будет вызвана FREEAREA, чтобы

освободить одну из использованных областей, вообще говоря, не

последнюю. После нескольких вызовов GETAREA и FREEAREA блок

может выглядеть так:

┌────────┬────────┬──────────┬─────────┬────────┬──────────┐

│ Занято │ Занято │ Свободно │ ... │ Занято │ Свободно │

└────────┴────────┴──────────┴─────────┴────────┴──────────┘

где по-прежнему размеры областей различны. Система должна

помнить расположение всех свободных областей, с тем чтобы они

могли быть снова использованы. Более того, смежные свободные

области следует сливать в одну свободную область так, чтобы

память не оказалась разбитой на области, слишком малые для

использования.

Описываемый нами метод помеченных границ принадлежит

Кнуту. Метод требует резервирования для системных нужд 2-х

ячеек на границах каждой области ( одной в начале и одной в

конце ). Это приемлемая плата, так как в случаях, в которых

применяется этот метод, требуются довольно большие области,

например области данных процедур и память для массивов.

Преимущество этого метода в том, что необходимо по существу

фиксированное время, чтобы освободить область и объединить ее

со смежными свободными областями, если это возможно. В других

методах для этой цели требуется просмотр некоторого списка.

Ниже приводится формат каждой занятой и свободной области.

К-во Просмотров: 821
Бесплатно скачать Реферат: Распределение памяти