Защита памяти на уровне страниц
В отличие от 80386, процессоры 80486 и Pentium имеют дополнительные поля в элементе страничной таблицы [3]. Формат строки CT i80486 представлен на рис. 7.10, сравните его с форматом на рис. 7.6. Рис. 7.10. Формат строки CT процессора 80486 Кроме используемых в i80386 полей: □ P — бит присутствия; □ R/W — чтение/запись; □ U/S — пользователь/супервизор; □ A — бит доступа; □ D — признак записи на страницу; □ резерв ОС введены биты управления кэшированием: □ PCD — запрет кэширования страницы; □ PWT — сквозная запись. На уровне страниц в 80486 предусмотрены две разновидности контроля: □ ограничение адресуемой области; □ контроль типа. (Страница191) Ограничение адресуемой области. Для страниц и сегментов привилегии интерпретируются по-разному: для сегментов — 4 уровня, для страниц — только 2, определяемые битом U/S. При U/S=0 страница имеет уровень супервизора, иначе — уровень пользователя. На уровне супервизора работают обычно операционные системы, драйверы ВУ, а также располагаются защищенные данные (например, страничные таблицы). Уровни привилегий сегментов отображаются на уровень привилегий страниц: если значение CPL равно 0, 1 или 2, то процессор работает на уровне супервизора, при CPL=3 — на уровне пользователя. На уровне супервизора доступны все страницы, а на уровне пользователя — только страницы уровня пользователя. Контроль типа. Механизм защиты распознает только два типа страниц: с доступом только по считыванию (R/W=0) и с доступом по считыванию/записи (R/W=1), причем в 80386 ограничение по записи действительно только для уровня пользователя. Программа уровня супервизора игнорирует значение бита R/W и может записывать на любые страницы. В отличие от 80386, процессор 80486 разрешает защитить от записи страницы уровня пользователя в режиме супервизора: установка в регистре CR0 бита WR=1 обеспечивает чувствительность режима супервизора к защищенным от записи страницам режима пользователя. Для любой страницы атрибуты защиты ее элемента каталога разделов могут отличаться от атрибутов защиты ее элемента страничной таблицы. Процессор контролирует атрибуты защиты в таблицах обоих уровней и принимает решение таким образом, что всякое разночтение в уровне привилегий раздела и страницы всегда разрешается в сторону большей защиты (предоставления меньших прав пользователю).
|