Функции для управления памятью

Управление памятью можно представлять, как отображение информации в память посредством трех функций13 .

· Именующей функции f1, однозначно отображающей данное пользователем имя в идентификатор информации, к которой это имя относится.

· Функции памяти f2, отображающей однозначно определенные идентификаторы в истинные адреса памяти, в которых они находятся.

· Функции содержимогоf3 ,отображающей каждый адрес памяти в значение, которое по этому адресу находится.

Имена, заданные f1 Однозначные f2 Ячейки f3 Значения

пользователем идентификаторы памяти

 

Результат каждого из этих трех отображений зависит от времени. Это значит, что он может меняться в продолжение всего времени обработки задания системой, Например, результат отображения f1не устанавливается до тех пор, пока задание не будет связано с системными модулями и файлами, которые в нем упоминаются. Результат отображения f2может быть зафиксирован после загрузки задания. Однако при некоторых стратегиях распределения памяти отображение f2 меняется в течение всего времени, пока задание находится в оперативной памяти. Ясно, что результат отображения f3меняется каждый раз, когда выполняется команда записи в память.

Действие, состоящее в закреплении результатов одного из упомянутых отображений, называется привязкой. Время, когда происходит привязка отображения, называется моментом привязки. отображения. Привязка может происходить во время программирования задания или во время обработки задания операционной системой, например, во время компиляции. Иногда привязка отображения происходит так часто, что естественнее считать, что привязки вообще не происходит, например, для функции содержимого.

Если функцию содержимого определяет пользователь, то функцию памяти и именующую функцию определяет ОС, а избранные изготовителем ОС моменты привязки являются важными ее характеристиками. Так ранняя привязка реализуется значительно проще, но, с другой стороны, для достижения большей гибкости системы, желательно, чтобы привязка происходила достаточно поздно, так как это дает возможность ОС перемещать задание в памяти, добиваясь ее максимальной загруженности.