Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lektsii_OS_pervaya_tret.docx
Скачиваний:
4
Добавлен:
15.04.2019
Размер:
3.1 Mб
Скачать

Тема 12.Виртуальная память

  • Идея: создать иллюзию наличия большого количества памяти

  • Первая реализация — ЭВМ Atlas, 1960

  • Новое адресное пространство — пространство виртуальных адресов, виртуальное адресное пространство

  • Устройство управления памятью (MemoryManagementUnit, MMU) преобразует адреса виртуального пространства в адреса физического пространства

Динамическая трансляция адресов

  • Искусственная непрерывность памяти

  • Требуется хранить карту трансляции адресов

  • Проблема: карта трансляции не входит в оперативную память

Блочное размещение

  • Решение: группировать адреса в блоки

  • Проблема: какой размер блока выбрать?

  • Проблема: должны ли все блоки быть одинакового размера?

  • Два подхода:

    • Страничная организация

    • Сегментная организация

Страничная организация

  • Вся виртуальная и физическая память разбиваются на блоки одинакового размера

  • Адрес данного -> [номер страницы p, смещение d]

  • p -> p'

  • p' * ps . d = r

  • Не требуется хранить в памяти все страницы, принадлежащие процессу

  • Усложнение механизма трансляции адресов

  • Генерация страничного прерывания (pagefault) при отсутствии страницы в памяти

  • Хранение таблицы размещения страниц, состоящая из записей страничной таблицы (PageTableEntry)

Запись таблицы страниц

  • Бит резидентности

  • Адрес во вторичной памяти

  • Базовый адрес физической страницы

Способы трансляции адресов

  • Прямое отображение

  • Ассоциативное отображение

  • Смешанное отображение

  • Многоуровневые (иерархические) таблицы

  • Обращённые таблицы

Прямое отображение

  • Адрес данного -> [номер блока b, смещение d]

  • Регистр адреса таблицы размещения a

  • a + b -> b'

  • b' . d -> r

  • Простота

  • Таблица получается большой

Ассоциативное отображение

  • Применение ассоциативной памяти

  • p -> p'

  • p' . d -> r

  • Скорость

  • Дороговизна

Прямое/ассоциативное отображение

  • Применение аппаратного ассоциативного буфера быстрой трансляции (TranslationLookasideBuffer, TLB) в качестве кэша PTE

  • Компромисс между скоростью работы и стоимость решения

Многоуровневые (иерархические) таблицы

  • Позволяют хранить в памяти только часть общей таблицы

  • Адрес данного -> [адрес в таблице верхнего уровня p, адрес в таблице нижнего уровня t, смещение d]

  • a + p -> b, b + t -> p', p' . d -> r

  • Уменьшение фрагментации таблиц

  • Возможно замедление работы

Обращённые таблицы

  • Хранение одного PTE для каждой физической страницы

  • Применение хэш-таблиц

  • Фиксированный размер таблицы трансляции

  • Необходимо отдельно хранить список нерезидентных страниц

  • Возможно снижение скорости

  • Возможно применение дополнительной якорной хеш-таблицы

Сегментная организация

  • Код и данные программы делятся на блоки нужного для них размера

  • Адрес данного -> [Номер сегмента s, смещение d]

  • Генерация сегментного исключения при отсутствии сегмента в памяти

Запись таблицы сегментов

  • Бит резидентности

  • Адрес во вторичной памяти

  • Длина сегмента

  • Биты защиты

  • Физический базовый адрес сегмента

Трансляция прямым отображением

  • Регистр начала сегментной таблицы b

  • b + s -> s'

  • s' + d -> r

Разделение памяти при страничной организации

  • Пометка каждой страницы как разделяемой или неразделяемой

  • Копирование при записи (Copy-on-Write)

  • Бит чтения/записи в PTE

Разделение и защита памяти при сегментной организации

  • Пометка каждого сегмента как разделяемого или неразделяемого

  • Присваивание каждому процессу ключа защиты

  • Хранение прав доступа в STE — RWEA

  • RWEA -> режимы доступа

Сегментно-страничная организация

  • Разбиение сегментов на страницы

  • Адрес данного -> [Номер сегмента s, номер страницы p, смещение d]

  • Сегмент можно не загружать в память целиком

Трансляция смешанным отображением

  • Поиск s,p в TLB -> p'

  • Иначе:

    • a + s -> s'

    • s' + p -> r'

    • r' + d -> r

  • Чем больше таблиц хранится в памяти, тем меньше степень мультипрограммирования и тем ниже быстродействие

Разделение и защита при смешанной организации

  • Разделение — как при страничной организации

  • Защита — как при сегментной организации

Управление виртуальной памятью

  • Стратегии загрузки

    • Загрузка по требованию

    • Предварительная загрузка

  • Стратегии замены

    • Случайная замена

    • FIFO

    • LRU

    • LFU

    • NRU

Загрузка по требованию (ondemand)

  • Сначала загружается страница с первой инструкцией процесса

  • Другие страницы загружаются по мере обращения к ним

  • Возможно повышение степени мультипрограммирования

  • Ожидание при загрузке каждой страницы

  • Пространственно-временной показатель

Предзагрузка (prefetch, anticipatory)

  • Предугадывание необходимых страниц

  • Возможно ускорение работы системы

  • Возможно замусоривание памяти ненужными страницами

  • Совмещение загрузки по требованию и предзагрузки

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]