Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Явная подкачка объектов






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

Метод обеспечения перманентности с учетом достижимости (reachabilitybased) основан на том, что объект является перманентным, если он достижим из корневого перманентного объекта. Этот метод обладает некоторыми преимуществами, включая то, что во время создания объекта можно не задумываться над тем, должен ли этот объект стать перманентным. Объект можно сделать перманентным в любой момент после создания путем включения его в дерево достижимости (reachability tree). Такая модель хорошо подходит для языков, в которых используется некоторая разновидность механизма сборки мусора, позволяющего автоматически удалять объекты, если они недостижимы для любого другого объекта (таковыми являются, например, языки Smalltalk или Java).

При использовании метода обеспечения перманентности с учетом распределения (allocation-based) объект становится перманентным только в том случае, если он явно объявлен таковым внутри прикладной программы. Этого можно добиться следующими способами:

- с помощью класса. Класс объявляется статически перманентным, и все его экземпляры автоматически становятся перманентными в момент их создания. В альтернативном варианте класс может быть объявлен как подкласс общесистемного перманентного класса;

- с помощью явного вызова. Объект может быть объявлен перманентным в момент его создания (статически) или, как в некоторых случаях, во время выполнения программы (динамически). В альтернативном варианте объект может быть динамически добавлен в перманентную коллекцию объектов.

При отсутствии всеобъемлющего механизма сборки мусора объект будет храниться в перманентном хранилище до тех пор, пока не будет явно удален приложением. Это может привести к возникновению проблем неэффективного использования памяти и зависших указателей.

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






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.