Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700363.doc
Скачиваний:
16
Добавлен:
01.05.2022
Размер:
3.69 Mб
Скачать

Архитектура виртуальной памяти

Общая архитектура системы виртуальной памяти показана на рис. 24.

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

Рис.24. Общая архитектура виртуальной памяти

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

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

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

Помимо расширения адресного пространства, виртуальная память хорошо решает и проблему фрагментации. Ключевым моментом здесь является то, что подсистема трансляции адресов позволяет выполнять несвязное распределение памяти в ОЗУ при сохранении связности в виртуальном адресном пространстве (рис. 25).

Рис.25. Отображение связной области ВАП на несвязные участки ОЗУ

В каждом виртуальном адресном пространстве находится единственная программа, и виртуальная память полностью контролирует отображение виртуальных адресов ВАП на физические адреса ОЗУ. Поэтому полностью исключается возможность несанкционированного доступа к памяти параллельных программ.

Наконец, виртуальная память может отображать участки различных виртуальных адресных пространств на одну и туже область ОЗУ, реализуя при необходимости совместный доступ к данным со стороны нескольких программ.

Таким образом, подсистема трансляции адресов является одним из важнейших компонентов в системе виртуальной памяти, рассмотрим ее более внимательно.

Подсистема трансляции адресов

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

Выходом является использование поблочного отображения. При этом виртуальное адресное пространство разбивается на непрерывные блоки некоторого размера. Каждый такой блок отображается в аналогичный непрерывный блок физической памяти – в ОЗУ или на диск. В таблице сохраняется только соответствие между началом блока виртуального адресного пространства и началом блока физического (реального) адресного пространства.

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