Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка.doc
Скачиваний:
617
Добавлен:
22.05.2015
Размер:
2.56 Mб
Скачать

5.1 Каталог страниц

Каталог страниц (Page Directory Entry, PDE) представляет собой таблицу, содержащую 1024 элемента, каждый по 4 байта, т.е. размер каталога страниц равен размеру страницы 4Кб. Каждый элемент каталога страниц является указателем на одну из таблиц страниц. Структура элемента каталога изображена на рисунке 5.1. 32-разрядный адрес таблицы страниц представлен только двадцатью старшими битами, младшие 12 бит всегда равны нулю, т.к. адреса всех таблиц страниц выровнены на 4 Кб, т.е. 12 младших разрядов всегда равны 0.

12 бит прав доступа к таблице страниц имеют следующие значения:

  • Три бита AVL – это биты, отданные системе. В них можно записать всё что угодно.

  • Бит P (Present) определяет наличие данной страницы или таблицы страниц в физической памяти. Если он сброшен, то процессор записывает линейный адрес отсутствующей страницы в регистр CR2 и передаёт управление обработчику #PF, который должен загрузить страницу в память (или создать её) и установить этот бит.

  • Бит RW (Read/Write) определяет, можно ли в эту страницу что-то писать (1 – можно, 0 – нельзя).

  • Бит US (User/Supervisor) разрешает коду с CPL=3 (код пользователя) обращаться к этой странице (при US=1).

  • Бит PWT (Page write through) – запрещение кэширования записи (немедленная запись). Используется для управления кэшированием данной страницы. Если он установлен, то запись происходит непосредственно в оперативную память. Актуально обычно в многоядерных машинах.

  • Бит PCD (Page cache disable) – запрещение кэширования этой страницы. При обращении к такой странице, она не заносится в кэш.

  • Бит A (Accessed). Аналогично биту A в дескрипторе сегмента, этот бит никак не влияет на работу со страницей. Он просто устанавливается процессором при первом же обращении к этой странице (чтение, запись, выполнение).

  • Бит D (Dirty, букв. грязный) используется только в элементах таблицы страниц (PTE) для отслеживания изменений страницы. Аналогично биту A, устанавливается процессором, но только при записи на эту страницу.

  • Бит PS (Page size) определяет размер страницы. Если сброшен, то этот элемент указывает на таблицу страниц с размером страниц 4 Кб. Если установлен, то элемент указывает на страницу размером 4 Мб при 32-битной физической адресации или 2 Мб при 36-битной. Важно! Работает только при установленном бите PSE в регистре CR4.

  • Бит G (Global). Если этот бит установлен, то адрес страницы (или таблицы страниц) никогда не удаляется из TLB кэша. Удалить из TLB кэша можно любую страницу привилегированной командой INVLPG.

5.2 Таблица страниц

Таблица страниц (Page Table Entry, PTE) почти полностью повторяет каталог страниц, т.е. представляет собой таблицу, содержащую 1024 элемента, каждый по 4 байта. Размер таблицы страниц равен размеру страницы 4Кб. Элемент таблицы страниц является указателем на одну из страниц, его структура изображена на рисунке 5.2.

32-разрядный адрес страницы представлен только двадцатью старшими битами, младшие 12 бит всегда равны нулю, т.к. адреса всех страниц выровнены на 4 Кб, т.е. 12 младших разрядов всегда равны 0. Структура элемента таблицы страниц изображена на рисунке 5.2.

12 бит прав доступа к странице имеют те же значения, что и биты доступа к каталогу страниц за исключением одного бита: вместо PS используется PAT (Page attribute table) – атрибуты страницы.