Утилизация - память - Большая Энциклопедия Нефти и Газа, статья, страница 1
Девиз Канадского Билли Джонса: позволять недотепам оставаться при своих деньгах - аморально. Законы Мерфи (еще...)

Утилизация - память

Cтраница 1


Утилизация памяти в куче путем явного возврата памяти создает возможность появления мусора и висячих ссылок.  [1]

Механизм утилизации памяти, применяемый при вызове программы управления памятью для освобождения блока из М слов.  [2]

Появление висячих ссылок вызывается тем, что утилизация памяти, занимаемой уничтоженной структурой, происходит слишком быстро, раньше, чем будут разрушены все пути доступа.  [3]

Одной из поразительных черт сбора мусора как метода утилизации памяти является то, что затраты на его выполнение ( приблизительно) обратно пропорциональны объему утилизуемой памяти; сбор мусора обходится тем дороже, чем меньше памяти утилизуется. Причина этого в том, что большая часть затрат на сбор мусора приходится на фазу маркировки, а маркировка тем сложнее, чем больше активных элементов в куче. В противоположность этому стоимость утилизации памяти с использованием счетчиков ссылок строго пропорциональна объему утилизуемой памяти. Как результат такого свойства сбора мусора этот метод становится очень дорогостоящим, когда куча почти заполнена активными элементами. В действительности часто программа, которая близка к тому, чтобы использовать всю кучу ( и, следовательно, остановиться из-за нехватки памяти), перед этим инициирует ряд дорогостоящих и сравнительно бесполезных процедур сбора мусора, каждая из которых освобождает лишь несколько ячеек памяти, тут же потребляемых при возобновлении счета, что быстро приводит к новому сбору мусора.  [4]

При обсуждении операций уничтожения структур данных следует отличать операцию уничтожения, которая делает структуру данных логически недоступной, от операции утилизации памяти, занимаемой этой структурой. Во многих языках это две совершенно отдельные операции; например, память, которую занимают уничтоженные структуры, часто утилизуется ( восстанавливается) только тогда, когда она действительно понадобится для создания или модификации других структур. Механизм сбора мусора в Лиспе является хорошим примером такого метода утилизации памяти.  [5]

Классы памяти тесно связаны со структурахМИ, лежащими в основе системы управления памятью: атрибут STATIC подразумевает использование для соответствующей структуры дак ных статической памяти, AUTOMATIC - стекового механизма, базирующегося на записях активации для соответствующего блока или процедуры, а для BASED и CONTROLLED необходима куча, поскольку инструкции ALLOCATE и FREE требуют выделения и утилизации памяти в произвольные моменты вре мени в ходе выполнения программы.  [6]

Память, которая была распределена и использовалась в течение какого-то времени, а затем стала ненужной, должна обнаруживаться системой управления памятью с целью повторного ее использования. Утилизация памяти может быть очень простой, как в случае перемещения указателя стека, или очень сложной, как в случае сбора мусора.  [7]

8 Циклический список со счетчиками ссылок. [8]

К сожалению, ни один из элементов списка не имеет нулевого счетчика ссылок, поэтому утилизация памяти невозможна.  [9]

Статически обычно распределяется память для пользовательских и системных программ, а также для буферов ввода-вывода и различных системных данных. Статическое распределение не требует во время выполнения никаких программных средств управления памятью, и, конечно, отпадают вопросы утилизации памяти и повторного ее использования.  [10]

Одной из поразительных черт сбора мусора как метода утилизации памяти является то, что затраты на его выполнение ( приблизительно) обратно пропорциональны объему утилизуемой памяти; сбор мусора обходится тем дороже, чем меньше памяти утилизуется. Причина этого в том, что большая часть затрат на сбор мусора приходится на фазу маркировки, а маркировка тем сложнее, чем больше активных элементов в куче. В противоположность этому стоимость утилизации памяти с использованием счетчиков ссылок строго пропорциональна объему утилизуемой памяти. Как результат такого свойства сбора мусора этот метод становится очень дорогостоящим, когда куча почти заполнена активными элементами. В действительности часто программа, которая близка к тому, чтобы использовать всю кучу ( и, следовательно, остановиться из-за нехватки памяти), перед этим инициирует ряд дорогостоящих и сравнительно бесполезных процедур сбора мусора, каждая из которых освобождает лишь несколько ячеек памяти, тут же потребляемых при возобновлении счета, что быстро приводит к новому сбору мусора.  [11]

При обсуждении операций уничтожения структур данных следует отличать операцию уничтожения, которая делает структуру данных логически недоступной, от операции утилизации памяти, занимаемой этой структурой. Во многих языках это две совершенно отдельные операции; например, память, которую занимают уничтоженные структуры, часто утилизуется ( восстанавливается) только тогда, когда она действительно понадобится для создания или модификации других структур. Механизм сбора мусора в Лиспе является хорошим примером такого метода утилизации памяти.  [12]

В Лиспе допускается большое число ссылок на каждый список после его создания - через идентификаторы или через указатели, хранящиеся в других списках, подсписком которых он может быть. Могут также существовать пути доступа к отдельным частям этого списка. Допускается создание и уничтожение таких путей доступа по желанию во время выполнения программы. Последний путь доступа к некоторому списку может быть разрушен в любой момент, но в общем случае не существует простого способа для определения этого момента. Поскольку трудно определить, когда конкретный список становится мусором, во время разрушения пути доступа не делается никакой утилизации памяти. Более того, могут порождаться другие структуры, становящиеся затем мусором, и они могут продолжать существовать в памяти, даже если они недоступны.  [13]



Страницы:      1