Ассемблер для Windows

       

Страничное управление памятью



Страничное управление памятью

Механизм со страничным управлением памятью включается установкой бита PG в регистре CR0. Регистр CR2 хранит линейный адрес отказа и адрес памяти, по которому был обнаружен последний отказ страницы. Регистр CR3 хранит физический адрес каталога страниц. Младшие 12 бит этого регистра всегда равны нулю (выравнивание по границе страниц). Каталог страниц состоит из 32-битных элементов и имеет длину 4 Кб.

20 старших бит
адреса таблицы
следующего уровня Резерв
3
бита G P
S D A P
C
D P
W
T U
/
S R
/
W P

Каждая таблица страниц также имеет размер 4 Кб и элементы аналогичного формата. Но эти элементы содержат базовый адрес самих страниц и атрибуты страниц. Физический адрес собирается из базового адреса и младших 12 бит линейного адреса. Значение атрибутов страниц:

  • G - глобальная страница, страница не удаляется из буфера.
  • PS - размер страницы. Если 1, то размер страницы 4 Mb*
  • D - грязная страница. Устанавливается в 1 при записи на страницу.
  • А - бит доступа. Устанавливается в 1 при любом обращении к странице.
  • PCD - бит запрещения кэширования.
  • PWT - бит разрешения сквозной записи.
  • U/S - страница или таблица доступна для программ с уровнем доступа 3.
  • R/W - страница/таблица доступна для записи.
  • P - страница/таблица присутствуют.
  • *

    Автор не упомянул (точнее в оригинале опечатка :), но следует добавить, что 4 Мб - при нормальной 32-битной адресации, и 2 Мб - при разрешенной расширенной физической адресации).



    Содержание раздела