Виртуальная память

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

glava 411.jpg

Рис. 4.11. Структурная схема формирования абсолютного адреса при сегментно-страничной организации ОП

glava 412.jpg

Рис. 4.12. Структура виртуальной памяти

 

Теоретически доступная пользователю ОП, объем которой определяется только разрядностью адресной части команды и которая не существует в действительности, называется виртуальной памятью.

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

Вычислительная система с 24-разрядным адресом может иметь адресное пространство в 16 777 216 байт (16 Мбайт), с 32-разрядным адресом - 4 Гбайт. Структура такой памяти показана на рис.4.12.

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

Загрузить программу в виртуальную память - значит переписать несколько программных страниц из внешней страничной памяти в основную память. Если в процессе выполнения программы А система обнаружит, что требуемой страницы нет в реальной памяти, она должна переслать копию этой страницы из внешней страничной памяти в реальную память. Этот механизм называется принудительным страничным обменом.

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


На главную