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