Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Osso.docx
Скачиваний:
16
Добавлен:
25.04.2019
Размер:
551.47 Кб
Скачать

9.2.1 Страничная память

В наиболее простом и наиболее часто используемом случае страничной виртуальной памяти виртуальная память  и физическая  представляются состоящими из наборов блоков или страниц одинакового размера. Виртуальные  адреса делятся на страницы (page), соответствующие единицы в физической  памяти образуют страничные кадры (page frames), а в целом система поддержки страничной виртуальной памяти называется пейджингом (paging).  Передача информации между памятью и диском всегда осуществляется целыми страницами. Страницы, в отличие от сегментов, имеют фиксированную длину, обычно являющуюся степенью числа 2, и не могут перекрываться.

Виртуальный адрес в страничной системе упорядоченная пара (p,d), где p - номер страницы в виртуальной памяти, а d - смещение в рамках страницы p, где размещается  адресуемый  элемент.  Процесс может выполняться, если его текущая страница находится в  оперативной памяти.  Если текущей страницы в главной памяти нет, она должна быть переписана (подкачана)  из внешней памяти. Поступившая страница может быть размещена в любой свободный страничный  кадр. Система отображения виртуальных адресов в физические сводится к  системе отображения виртуальных страниц в физические и представляет собой таблицу страниц.

Для преобразования адресного пространства каждого процесса используется одна или несколько таблиц страниц, которые обычно хранятся в оперативной памяти. Для ссылки на таблицу страниц используется специальный регистр процессора. Особенности хранения  таблицы страниц описаны  ниже. Интерпретация виртуального (логического) адреса показана на рис. 9.1

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

Существуют две другие схемы организации виртуальной памяти: сегментная и сегментно-страничная. Идеи сегментации изложены во введении к предыдущей главе. При сегментной организации виртуальный адрес по-прежнему является двумерным и состоит из двух полей - номера сегмента и смещения внутри сегмента.   Заметим, что с точки зрения ОС сегменты являются логическими сущностями и их главное назначение хранение и защита однородной информации (кода, данных и т.д.).

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

При сегментно-страничной организации виртуальной памяти происходит двухуровневая трансляция виртуального адреса в физический. В этом случае виртуальный адрес состоит из трех полей: номера сегмента виртуальной памяти, номера страницы внутри сегмента и смещения внутри страницы. Соответственно, используются две таблицы отображения - таблица сегментов, связывающая номер сегмента с таблицей страниц, и отдельная таблица страниц для каждого сегмента.

Рис. 9.3  Формирование физического адреса при сегментно-страничной организации памяти.

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

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