Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Виртуальная память. Принцип организации и основной алгоритм функционирования



Виртуальная память — это совокупность программно-аппарат­ных средств, позволяющих пользователям писать программы, размер которых превосходит имеющуюся оперативную память. Для этого виртуальная память решает следующие задачи:

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

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

- преобразует виртуальные адреса в физические.

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

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

Принцип организации.

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

2) Процесс может быть разбит на ряд частей (страниц или сег­ментов), которые не обязательно должны располагаться в основной памяти единым непрерывным блоком. Это обеспечивается за счёт динамической трансляции адресов и использования таблицы стра­ниц или сегментов.


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

При загрузке каждого нового процесса операционная система размещает в памяти только один или нескольких блоков, включая блок, содержащий начало программы. Часть процесса, располагаю­щаяся в некоторый момент времени в основной памяти, называется резидентным множеством процесса. Во время выполнения процесса всё происходит так, как если бы все ссылки были только на рези­дентное множество процесса. При помощи таблицы сегментов или страниц процессор всегда может определить, располагается ли блок, к которому требуется обращение, в основной памяти. Если процессор сталкивается с виртуальным адресом, который не находится в основ­ной памяти, он генерирует прерывание, свидетельствующее об ошиб­ке доступа к памяти. Операционная система переводит прерванный процесс в заблокированное состояние и получает управление. Что­бы продолжить выполнение прерванного процесса, операционной си­стеме необходимо загрузить в основную память блок, содержащий вызвавший проблемы виртуальный адрес. Для этого операционная система использует запрос на чтение с диска (во время выполнения которого может продолжаться выполнение других процессов). После того, как необходимый блок загружен в основную память, выполня­ется прерывание ввода-вывода, передающее управление операцион­ной системе, которая, в свою очередь, переводит заблокированный процесс в состояние готовности.

Как можно видеть, для реализации виртуальной памяти необхо­дима аппаратная поддержка процесса трансляции виртуальных ад­ресов в физические.

Обычно виртуальный адрес представляет собой пару значений (s, gT), где s — номер сегмента, ad — смещение внутри сегмента.

В системе (процессоре) обязательно имеется регистр, содержа­щий адрес таблицы сегментов (блоков) текущего процесса.

Процесс трансляции в общем виде выглядит следующим образом (рис. 30.1). При обращении к памяти из таблицы сегментов, на кото­рую указывает специальный регистр процессора, выбирается строка, соответствующая номеру сегмента s, записанному в виртуальном ад­ресе. Из строки выбирается физический адрес s' загрузки данного сегмента в ОП. Далее вычисляется исполнительный физический ад­рес га по формуле


Как можно видеть, каждое обращение к памяти требует на са­мом деле минимум двух обращений к ОП (не считая обращений к внешней памяти, если нужный сегмент в ОП отсутствует). Если бы запросы к памяти были распределены по процессу равномерно, то механизм виртуальной памяти был бы крайне неэффективным. Однако благодаря свойству локальности и наличию механизмов кэ­ширования в современных ЭВМ, реальная производительность меха­низма виртуальной памяти достигает 95 % и более от номинальной производительности ЭВМ.





Дата публикования: 2015-02-03; Прочитано: 2418 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...