Другим способом распределения памяти является виртуальная организация памяти.
При таком способе организации памяти мультипрограммной вычислительной системы достигается гибкое динамическое распределение памяти, устраняется ее фрагментация и создаются значительные удобства для работы программистов.
Принцип виртуальной памяти предполагает, что пользователь при подготовке своей программы имеет дело не с физической ОП, действительно работающей в составе вычислительной установки и имеющей некоторую фиксированную емкость, а с виртуальной (то есть кажущейся) одноуровневой памятью, емкость которой равна всему адресному пространству, определяемому размером адресных полей в форматах команд и базовых регистров.
Пользователь имеет в своем распоряжении все адресное пространство системы независимо от объема ее физической памяти и объемов памятей, необходимых для других программ, участвующих в мультипрограммной обработке.
На всех этапах подготовки программ, включая загрузку в ОП, программа представляется в виртуальных адресах, и лишь при самом исполнении машинной команды производится преобразование виртуальных адресов в реальные адреса действующей памяти (физические адреса).
Существуют следующие способы виртуальной организации:
· Страничная
· Сегментно-страничная
Основные правила, связанные с виртуальной организацией:
v Вся память, как виртуальная, так и физическая разбивается на страницы одинаковой длины
v Байты, в пределах виртуальной и соответствующей ей физической страницы нумеруются одинаково
v Адрес при страничной организации будет иметь следующий формат:
ВАП |
ВАС |
ВАБ |
память |
страница |
байт на странице |
v Адрес при сегментно-страничной организации будет иметь формат:
ВАП |
ВАСегмент |
ВАСтраница |
ВАБ |
память |
сегмент |
страница |
байт на странице |
Загрузка программ в ОЗУ осуществляется блоками или страницами.
В случае страниц отсутствует фрагментация памяти и она может использоваться на 100%. После обработки какой-либо страницы она может перемещаться во внешнюю память, а на ее место может загружаться новая страница такой же длины. В этом случае не требуется загружать в ОЗУ всю программу в целом.
Присутствуют те страницы тех программ, которые обрабатываются. Операционная система формирует таблицу страниц, которая устанавливает соответствие между виртуальными и физическими страницами. Эта таблица хранится в ОЗУ и обновляется при каждой новой загрузке-выгрузке страниц в ОЗУ и из ОЗУ.
Общая схема преобразования математических адресов в физические
Должен быть регистр математического адреса и физического адреса
ВА – виртуальный адрес
ФА – физический адрес
Для формирования физического адреса необходимо в таблице страниц отыскать виртуальный адрес страницы, соответствующей выставленному и выбрать из найденной строки физический адрес страницы, переслав его на регистр физического адреса РФА.
Виртуальный адрес байта передается на регистр физического адреса без изменений (так как их адресация внутри страниц одинакова).
Чтобы не было задержки в преобразованиях, таблица страниц должна быть выполнена на быстрых регистрах.
Рассмотрим три варианта построения таблицы страниц
1 вариант
Дешифратор управляет выходами дескрипторных регистров. Операционная система загружает на дескрипторные регистры физические адреса страниц. Прм этом каждому коду виртуального адреса страниц соответствует свой дескрипторный регистр.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.