Научная литература
booksshare.net -> Добавить материал -> Физика -> Александров Е.К. -> "Микропроцессорные системы" -> 162

Микропроцессорные системы - Александров Е.К.

Александров Е.К., Грушвицкий Р.И., Купрянов М.С., Мартынов О.Е. Микропроцессорные системы — Спб.: Политехника, 2002. — 935 c.
ISBN 5-7325-0516-4
Скачать (прямая ссылка): mikroprocessorniesistemi2002.djvu
Предыдущая << 1 .. 156 157 158 159 160 161 < 162 > 163 164 165 166 167 168 .. 528 >> Следующая

исключения). Это позволяют сделать непривилегированные команды LAR, LSL,
VERR и VERW.
LAR (Load Access Rights) - загрузить права доступа - используется для
проверки ссылок указателей на сегменты с соответствующим уровнем
привилегий и типом. LAR имеет один операнд - селектор дескриптора, права
доступа к которому проверяются. Дескриптор должен быть доступен на уровне
привилегий, который равен максимальному из CPL и RPL селектора. Если
дескриптор доступен, то по команде LAR в указанном в команде 32-разрядном
регистре назначения формируется замаскированный вид двух двойных слов
дескриптора. Это - 00FXFF00H (X - означает, что соответствующие 4 разряда
сохраненного значения неопределенны). Одновременно команда LAR
устанавливает флаг нуля. Загруженные командой LAR разряды прав доступа
могут быть протестированы. Если RPL или CPL больше чем DPL или если
селектор содержит ссылку за предел таблицы, значение прав доступа не
загружается, а флаг нуля сбрасывается. Согласованные кодовые сегменты
могут быть доступны с любого уровня привилегий.
LSL (Load Segment Limit) - загрузить границу сегмента - позволяет ПО
проверить предел дескриптора. Если дескриптор, специфицированный данным
селектором (в памяти или регистре), доступен по CPL, LSL загружает
специфицированный в команде 32-разрядный регистр 32 битовым линейным
адресом границы, которая вычисляется по фрагментам полей предела и
разряда дробности этого дескриптора. Это можно сделать лишь для сегментов
данных, кодовых сегментов; сегментов состояния задачи и локальных таблиц
дескрипторов; дескрипторы вентилей недоступны. Интерпретация предела
является функцией типа сегмента. Например, для сегментов в обратной
записи в памяти трактовка предела отличается от трактовки предела
кодового сегмента. Как для LAR, так и для LSL, флаг нуля (ZF)
устанавливается, если загрузка произошла, в противном случае ZF
сбрасывается.
В МП есть команды VERR и VERW, определяющие, указывает ли селектор на
сегмент, который соответственно может читаться или в который может
осуществляться запись на текущем уровне привилегий? Команды вызывают
ошибку по защите, если результат отрицательный.
VERR (Verify for Reading) - проверка на читаемость - проверяет сегмент на
возможность чтения и загружает ZF единицей, если сегмент доступен для
чтения с текущего уровня привилегий. VERR проверяет, что:
• селектор ссылается на дескриптор в границах GDT или LDT;
• селектор задает дескриптор кодового сегмента или сегмента данных;
• сегмент доступен по чтению и имеет соответствующий уровень привилегий.
Проверка привилегий для сегментов данных и несогласованных кодовых
сегментов проводится так: DPL должно быть численно больше или равно
KaKCPL, таки RPL селектора. Согласованные сегменты на уровень привилегий
не проверяются.
VERW (Verify for Writing) - проверка доступности по записи - обеспечивает
те же самые возможности, что и VERR для проверки доступности по чтению.
Подобно команде VERR, VERW устанавливает фла^Р, если результат проверки
возможности записи является положительным. Команда проверяет: находится
ли дескриптор в границах таблицы дескрипторов, является ли дескриптором
сегмента, является ли дескриптором сегмента с возможностью записи и имеет
ли DPL численно больший или равный как CPL, так и RPL селектора. Кодовые
сегменты независимо от того, согласованные они или нет, не допускают
записи.
281
ИСПОЛЬЗОВАНИЕ КЭШ-ПАМЯТИ И ОРГАНИЗАЦИЯ ОСНОВНОЙ ПАМЯТИ
3.4.4. УРОВЕНЬ ЗАЩИТЫ СТРАНИЦ
На страницы распространяются два типа защиты;
1) ограничение адресуемой области;
2) проверка типа страницы.
Записи таблиц страниц содержат параметры защиты. На рис. 3.31. высвечены
поля PDE (записи страничных директорий) и РТЕ (записи таблиц страниц),
которые используются для управления обращениями к страницам.
Ограничение адресуемой области. Концепция привилегий для страниц
реализуется путем отнесения каждой страницы к одному из двух уровней;
1) уровню супервизора (U/S = 0) - для операционной системы и другого
системного ПО и соответствующих данных;
2) уровню пользователя (U/S = 1) -для прикладных программ и данных.
Текущий уровень (U или S) связан с CPL. Если CPL равен 0,1 или 2,
процессор находится на уровне супервизора. Если CPL = 3 - на уровне
пользователя.
Когда процессор работает на уровне супервизора, все страницы доступны и
по записи и по чтению. Когда процессор работает на уровне пользователя,
доступны только страницы уровня пользователя, помеченные R/W = 1
(доступны для записи и чтения); страницы, принадлежащие уровню
супервизора, недоступны ни для чтения, ни для записи с уровня
пользователя.
Проверка типа страниц. Рассматриваются два типа страниц:
1) с доступом только по чтению (R/W = 0);
2) с доступом и по чтению и по записи (R/W = 1).
Когда процессор работает на уровне супервизора, все страницы доступны и
по записи и по чтению. Когда процессор работает на уровне пользователя,
доступны только страницы уровня пользователя, помеченные R/W = 1
Предыдущая << 1 .. 156 157 158 159 160 161 < 162 > 163 164 165 166 167 168 .. 528 >> Следующая

Реклама

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed

Есть, чем поделиться? Отправьте
материал
нам
Авторские права © 2009 BooksShare.
Все права защищены.
Rambler's Top100

c1c0fc952cf0704ad12d6af2ad3bf47e03017fed