Лекция 3. Виртуальная память

advertisement
Виртуальная память
Управление памятью
объединяет три задачи
• Динамическое распределение памяти.
• Отображение виртуальных
адресов программы на физические адреса.
• Реализация защиты памяти.
Принцип виртуальной памяти
Принцип виртуальной памяти предполагает, что пользователь имеет дело с
кажущейся одноуровневой памятью,
объем которой равен всему АП независимо от объема ОЗУ и объема памяти,
необходимой для других программ,
участвующих в мультипрограммной
обработке. В действительности все
данные, используемые программой,
хранятся на одном или нескольких
разнородных ЗУ, обычно на дисках, и
при необходимости частями отображаются в реальную память.
Физически виртуальная память
представляет собой совокупность всех
ячеек памяти (оперативной и внешней).
Она имеет сквозную нумерацию от
нуля до предельного значения адреса.
Совокупность виртуальных адресов
процесса называется виртуальным
адресным пространством.
Таким
образом, ВП компенсирует недостаток
оперативной памяти наличием свободного дискового пространства, которое
используется в роли ОП.
Графическое
представление ВП
ВИРТУАЛЬНАЯ ПАМЯТЬ ПРОЦЕССА
Редко
используемые
страницы
на диске
Активные
страницы
в ОЗУ
При обращении
страницы
перемещаются в ОЗУ
и наоборот
Как обрабатывается программа в
компьютере с виртуальной
памятью?
• Транслятор переводит программу на машинный язык и присваивает переменным
и командам виртуальные адреса.
процесс имеет собственное
виртуальное АП. Если виртуальный адрес
• Каждый
команды (данного) принадлежит той части
программы, которая размещена в ОП или
кэш-памяти, то он преобразуется в физический адрес.
• Если соответствующая часть программы
находится на диске, то она сначала загружается в ОП, а затем уже производится
выборка.
Графическое
представление ВП
Виртуальное
адресное
пространство
0
ОЗУ
0
K
Программа
Виртуальные адреса
Физические
адреса
Преобразование
адресов
Жесткий диск
Система
подкачки
N
Программа
Способы управления
виртуальной памятью
• страничный
• сегментный
• странично-сегментный
Страничный способ
управления памятью
Виртуальная память
Активные страницы в ОЗУ
Оперативная
память
Подкачка
страниц
Внешняя
память
Редко используемые
страницы на диске
Что такое страница?
Страница --
часть физической
памяти заданного размера. Она не
имеют прямой связи с логической
структурой данных и программ.
Разбиение памяти
на страницы
выполняется на системном уровне
для
управления
физической
памятью. В любой момент только
часть ВП присутствует в ОЗУ, т.е., та
часть, которая необходима активным задачам.
Виртуальная страница
• Номер страницы плюс смещение (адрес относительно начала
страницы).
• Транслятор формирует ТС (таблица
страниц, по которой устанавливается
соответствие между физической и
виртуальной страницей).
• Преобразование виртуального адреса
в физический адрес выполняет устройство управление памятью.
Страничный способ
управления памятью
Схема преобразования
виртуальных адресов
• В ТС по индексу, соответствующему
номеру виртуальной страницы,
извлекается номер физической
страницы.
• Если физическая страница
находится в ОП, то физический
адрес вычисляется, как номер
физической страницы плюс
смещение.
Схема преобразования
виртуальных адресов
• Если номер страницы расположен
в ВЗУ, то нужную страницу нужно
подгрузить в свободную страницу
или по одному из алгоритмов
замещения выбрать страницу, в
которую
записывается нужная
страница. Предварительно информация из замещаемой страницы
выгружается на диск.
Формат адреса в
Itanium®2
• 64-адресное ВП с 16-ю страницами
• Объем страницы – 260 ( 1024 ) bytes
• Адрес – номер страницы (virtual page number)
+ смещение (page offset)
0x40000000000003f8 – номер адреса,
4 – номер виртуальной страницы, 0x3f8
– смещение
0x40000000000003f8  4 0x3f8
Страничный способ
управления памятью
Два варианта реализации
таблицы страниц
• Многоуровневая таблица преобразования адресов
• Буфер быстрого преобразования
адресов (буфер ассоциатив-
ной трансляции (TLB))
Страничный способ
управления памятью
Таблица преобразования
адресов в Itanium2
Буфер ассоциативной
трансляции (TLB)
• TLB введен для хранения интенсивно используемых строк
таблиц (буферы TLB для данных и команд обычно раздельные).
• Буфер TLB представляет собой
полностью ассоциативную кэшпамять или множественно-ассоциативную кэш-память с высокой степенью ассоциативности.
Буфер ассоциативной
трансляции (TLB)
• В памяти тэгов хранятся номера
виртуальных страниц, в памяти
данных – номера физических
страниц.
• Каждая строка таблицы содержит несколько признаков (достоверности, модификации, права доступа и т.д.)
Translation Lookaside Buffer
(TLB)
Виртуальный адрес
63
Номер виртуальной страницы
вирт. страница
TLB
Биты
0
Смещение
физ. страница
Номер физической страницы
63
Физический адрес
Смещение
0
Механизм преобразования
виртуального адреса в
физический в Itanium
Сегментный способ
управления памятью
Сегментно-страничный
способ управления памятью
Download