6. Классы систем с виртуальной памятью.

Организация страничной виртуальной памяти

Физическая и виртуальная память разбивается на блоки, называемые страницами, содержащими одно и тоже число байт. Страницам виртуальной и физической памяти присваиваются номера. Каждая физическая страница способна хранить одну из виртуальных страниц. Порядок расположения (нумерация) байт в виртуальной и физической страницах сохраняется одним и тем же.

Прерывание отсутствия страницы

Если имеется обращение к странице, то первое такое обращение вызовет прерывание операционной системы: прерывание отсутствия страницы.

Алгоритм обработки:

  1. ОС принимает решение: если некорректный номер страницы –
    ошибка; если страница отсутствует в памяти – продолжаем.
  2. Получение свободного страничного кадра.
  3. Загрузка страницы с диска.
  4. Изменение служебных битов в таблице страниц, например, бита
    присутствия в памяти.
  5. Перезапуск инструкции, приведшей к прерыванию.

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

Элементы, общие для большинства реализаций:

Элементы, присутствующие в некоторых реализациях:

Проблема фрагментации

Влияние размера страницы

Вызов страниц по требованию и рабочее множество

Сегментация

Сегментация позволяет организовать несколько адресных пространств. Адресация осуществляется путем указания номера сегмента и адреса внутри
сегмента.

Преимущества:

  1. Упрощение связывания процедур.
  2. Если процедура в некотором сегменте изменялась и перекомпилировалась, то остальные можно не трогать.
  3. Облегчение разделения общих процедур и данных между несколькими программами.
  4. Разные сегменты могут иметь разные виды защиты. Например, кодовый сегмент допускает только считывание и выполнение, для массивов данных – запись и считывание и т.д.

Реализация сегментации:

Гибридная модель - сегменты, разбитые настраницы.

Параметр Страничная Сегментная
Слов на адрес 1 2 (сегмент, смещение)
Видимость для программиста Нет Да
Замена блока Тривиальная Сложна (приходится искать свободный непрерывный блок памяти заданной длины)
Назначение технологии Имитация памяти большего размера Предоставление нескольких адресных пространств
Простота управления структурами переменного размера Нет Да
Неэффективность использования памяти Внутренняя фрагментация Внешняя фрагментация
Эффективность дискового траффика Да Не всегда (для мелких сегментов не эффективно)