Динамическое распределение памяти по зонам произвольного размера предусматривает использование методов динамической перегрузки зон.
В этом методе параметры загрузки в физическую память определяются парой регистров, которые называются базовым регистром (RB) и регистром границ (RL). При каждом обращении к виртуальному адресу (d) вычисляется физический адрес (a) по формуле
.
Если значение а не выходит за рамки значения регистра границ RL, то выполняется текущая инструкция программы. В противном случае регистрируется ошибка, вызванная захватом запрещенного пространства.
Этот метод сегментации отличается от предыдущего тем, что значение физических адресов начала сегмента и границы сегмента хранятся в специальном дескрипторе сегмента.
Таким образом, методы динамической перезагрузки позволяют загружать сегменты в произвольные зоны оперативной памяти и перемещать их с минимальными затратами на управление (с помощью дескрипторов или регистров базы и границы).
Чаще всего используется три типа алгоритмов динамического распределения:
· организация списка цепочек свободных зон;
· квантование размеров блоков;
· работа с зонами заранее заданных размеров.