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

Основные положения:

  1. В отличие от сегментной организации, при которой отдельные блоки ( сегменты), имеют переменную длину, страничная организация базируется на использовании блоков (страниц) фиксированной длины; объем страницы 212 байт = 4Кбайт.

  2. Как линейное, так и физическое адресное пространство разделяется на отдельные страницы, которые выравниваются на 4-хКбайтную границу. Это означает, что базовые адреса страниц, как в линейном, так и в физическом адресном пространстве должны содержать 12 младших нулей. => в связи с этим для задания базового адреса страницы достаточно использовать 20 бит (20 разрядов).

  3. В линейном адресном пространстве емкостью 4Гбайта могут размещаться 220 страниц или 1 Мстаниц. Естественно физическая память не позволяет разместить такого множества страниц. Это означает, что линейное адресное пространство отображается на физическую двухуровневую память, в которой часть страниц размещается на 1 уровне (в ОП) и все страницы памяти 2-ого уровня (на жестком диске)

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

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

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

Упрощенная схема преобразования линейного адреса в физический

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

Структура элементов каталога таблиц страниц (PDE) и собственно таблиц страниц (PTE). Эти элементы зачастую называются страничными дескрипторами.

BASE

AVL

0

0

D

A

PWT

PCD

U/S

R/W

P

32 12

11 9

8

7

6

5

4

3

2

1

0

P – Present – бит присутствия; этот бит является аппаратной поддержкой виртуальной организации памяти на уровне страниц. При попытке обращения к странице со сброшенным битом P происходит прерывание стандартного типа 14 (отказ/ ошибка/ неприсутствие). Обработчик этого прерывания включенный в состав так называемого супервизора страниц определяет местоположение копии и организует пересылку в основную память, возможно освобождая в ней место путем выбора страницы – кандидата на удаление.

Все биты … со сброшенным битом P являются программодоступными и как правило используются для адресации страницы в дисковом пространстве.

------25,12,03--------------------------------------------------------------------------------------------------------------

R/W – R = 0 разрешается обращение к странице только по чтению. Попытка отращения к странице со сброшенным битом пресекается средствами защиты выходом на прерывания 13.

U/S (User/Supervisor) – с помощью этого бита реализована защита по 2-м уровням привелегий, как правило уровню user соответствует PL=3 (из колец защиты); на уровне S => PL = 0, 1, 2. Попытка обращения с уровня U к S-странице (U/S = 0) = Supervisor пресекаются аппаратными средствами защиты, путем выхода на прерывание типа 13.

PCD (Page Cach Disable) – бит запрещения кэширования. Состояние бита выдается в качестве выходного сигнала и показывает является ли данная страница кэшируемой PCD = 0, или не кэшируемой PCD = 1. Бит влияет на кэшируемость страници в КЭШ памяти 2-ого уровня.

PWT – Page Write Through, по аналогии с предыдущем битом, является выходными сигналом процессора и предназначен для управлением внешней КЭШ памяти. При PWT = 1 во внешней КЭШ памяти реализуется стратегия сквозной записи; при PWT = 0 в отношении внешней КЭШ памяти реализуется стратегия обратной записи (WB).

А – Access – бит обращений; бит аналогичен биту в сегментном регистре (см выше).

D – Dirty – бит «грязности»; бит устанавливается при обращении к странице по записи.

Биты A и D используются программными средствами для определения страницы, кандидата на удаление, при удалении страницы с установленным битом D, требуется предварительная ее перезапись в внешнюю дисковую память.

AVL – AVaLable не используется аппаратными средствами и является доступными для системных программ.