Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 9.Управление памятью.doc
Скачиваний:
20
Добавлен:
18.05.2015
Размер:
99.84 Кб
Скачать

10

Лекция 9

Глава 8. Управление памятью

Иерархия памяти

Организация оперативной (основной) памяти компьютера - один из важнейших факторов, определяющих построение ОС. Под организацией памяти понимают, каким образом представляется и используется оперативная память:

  • будет ли размещаться в памяти только одна программа пользователя или несколько программ одновременно;

  • при одновременном размещении нескольких программ - предоставляется ли им одинаковый объем памяти, или память разбивается на несколько разделов различных размеров;

  • предусматривается жесткое разбиение памяти на разделы, или динамическое, позволяющее быстро реагировать на изменение потребностей пользователей в ресурсах памяти;

  • требуется ли размещение выполняемых пользовательских программ в конкретном разделе, или предусмотрено размещение программ в любых подходящих для них разделах;

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

Рассмотрим иерархическую организацию памяти, рис. 8.

Время доступа к памяти

уменьшается

Кэш-память

Скорость доступа к памяти

возрастает

Стоимость памяти в расчете Оперативная

на бит растет память

Емкость памяти уменьшается

Внешняя

память

Рис.8 Иерархическая организация памяти

Чтобы программа могла выполняться, а к данным возможно обращение, они должны размещаться в оперативной памяти. Очевидно, что программы и данные, которые в данный момент не нужны, можно хранить во внешней памяти, а затем переписывать в оперативную по мере надобности. Кэш-память вносит в систему еще один уровень высокоскоростных обменов, сюда могут передаваться программы и данные для непосредственного использования ЦП, что обеспечивает значительный выигрыш во времени выполнения.

Система с несколькими уровнями иерархии памяти должна обеспечивать

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

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

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

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

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

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

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

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

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

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

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