Материалы книги получены с http://www.itlibitum.ru/
Общее описание архитектуры
В общих чертах наша архитектура строится на следующих принципах:
1.Поскольку различные типы объединяются в один набор ведущих указателей, мы воспользуемся абстрактным базовым классом VoidPtr для ведущих указателей. Конкретные ведущие указатели будут создаваться по шаблону, производимому от этого базового класса.
2.Ведущие указатели находятся в специальном пространстве, обеспечивающем простой перебор указателей.
3.Каждый ведущий указатель обеспечивает подсчет ссылок и удаляет себя, когда счетчик
переходит от 1 к 0. В свою очередь, его деструктор вызывает деструктор указываемого объекта и, в зависимости от используемых алгоритмов, пытается (или не пытается) вернуть занимаемую объектом память.
4.Во всех переменных классов и обычных переменных используются дескрипторы ведущих
указателей вместо прямых указателей на другие объекты.
5.Память возвращается лишь в процессе уплотнения управляемой части кучи. Иначе говоря, если нам понадобится больше памяти, мы начинаем спускать активные объекты в них по куче, чтобы освободить место наверху. Выделение памяти всегда происходит снизу вверх.
Описана лишь одна из возможных архитектур уплотнения. Мы не пытаемся ни решить проблемы зацикливания, ни удалить объекты, ставшие недоступными, но еще не удаленные. Об этом речь пойдет в следующей главе.
Назад Содержание Далее