Виртуальная память
Виртуальная память – это программно-аппаратное средство расширения пространства памяти, предоставляемой программе в качестве оперативной.
Виртуальная память
Виртуальная память - это сочетание оперативной памяти и временного хранилища на жестком диске.
Основные определения
Виртуальный адрес – это адрес, по которому процесс обращается к системе виртуальной памяти.
Виртуальное адресное пространство – это множество виртуальных адресов, по которым может обращаться процесс.
Физический адрес – адрес ячейки в оперативной памяти.
Физическое адресное пространство – диапазон физических адресов, соответствующий объему оперативной памяти данного компьютера.
Организация
виртуальной памяти
Для более эффективного функционирования ЭВМ используется динамический метод распределения памяти.
К оперативной памяти может обращаться несколько устройств (или программ) одновременно, потому требуется организовать концепцию виртуальной памяти.
Концепция
виртуальной памяти
► виртуальное пространство памяти разбито на страницы фиксированного размера;
► в физической оперативной памяти присутствует только часть из них;
► остальные страницы хранятся на диске, откуда операционная система может "подкачать" их в физическую память, предварительно выгрузив на диск часть неиспользуемых в данный момент страниц.
Организация
виртуальной памяти
1. страничная организация ВП;
2. сегментная организация ВП;
3. сегментно-страничная организация.
Страничная организация ВП
Пейджинг (paging) – это система поддержки страничной виртуальной памяти.
Выполняемая программа загружается в оперативную память не целиком, а отдельными страницами. Страница с которой работает процессор называется активной.
Страничная организация ВП
Страница – определенного размера участок виртуального адресного пространства процесса, который управляется как единое целое
Формат виртуального адреса в страничной системе:
Виртуальный адрес v=(p,d).
Кадр страницы – блок оперативной памяти, в котором может размещаться страница виртуальной памяти.
Номер страницы p | Смещение d |
Страничные системы
Страничные системы – это системы виртуальной памяти, в которых она делится на фиксированного размера непрерывные блоки.
Таблица страниц — это структура данных, используемая для хранения сопоставления между виртуальным адресом и физическим адресом.
Схема страничной системы организации памяти
Номер виртуальной страницы p | Смещение в виртуальной страницы S |
№ вирт. страницы | № физич. страницы |
p | n |
Номер физической страницы n | Смещение в физической страницы S |
Виртуальный адрес
Физический адрес
Недостатки
► программы разбиваются на страницы случайно, без учета логических взаимосвязей, имеющихся в коде;
► требует существенных расходов памяти.
Страничное нарушение (отказ)
Страничное нарушение (отказ) – это ситуация, которая возникает, если страница отсутствует в оперативной памяти в процессе выполнения команды.
В этом случае:
1. выполнение команды прерывается;
2. необходимая страница подкачивается из вторичной памяти в свободный страничный кадр оперативной памяти;
3. при отсутствии свободных страничных кадров на диск выгружается редко используемая страница;
4. повторение выполнения команды.
Сегментное
распределение памяти
Виртуальное адресное пространство процесса делится на сегменты.
Сегмент – это логический, осмысленный, неделимый участок адресного пространства произвольного размера.
Для каждого процесса хранится таблица сегментов.
Сегментное
распределение памяти
Для обращения к ячейке памяти необходимо указать номер сегмента и смещение ячейки внутри сегмента.
Виртуальный адрес v=(s,d).
Номер сегмента | Смещение d |
Достоинства
► программы можно размещать в памяти не целиком, а по частям, по мере необходимости;
► некоторые программные модули могут быть разделяемыми, поэтому он занимает оперативную память в единственном экземпляре, но доступ к нему будут иметь несколько программ.
Недостатки
► для получения доступа к искомой ячейке памяти необходимо потратить намного больше времени;
► внутренняя фрагментация.
Сегментно-страничное распределение памяти
Происходит двухуровневая трансляция виртуального адреса в физический.
Виртуальный адрес состоит из:
► номера сегмента;
► номера страницы внутри сегмента
► смещения внутри страницы.
Сегментно-страничное распределение памяти
Используются две таблицы отображения – таблица сегментов, связывающая номер сегмента с таблицей страниц, и отдельная таблица страниц для каждого сегмента.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.