Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DiVM / OSISP / Лекции_ОССП_Р2.pdf
Скачиваний:
95
Добавлен:
11.05.2015
Размер:
1.33 Mб
Скачать

2.При загрузке селекторов в сегментные регистры данных тип дескриптора должен разрешать считывание из сегмента. Только выполняемые дескрипторы для этих регистров не допускаются.

3.При загрузке регистра SS (сегментный регистр стека) в сегменте должны быть разрешены операции чтения и записи.

4.При загрузке регистра СS сегмент должен быть обязательно выполняе-

мым.

5.Если эти проверки кончились успешно, то процессор анализирует бит присутствия в дескрипторе, и только если этот бит равен 1, разрешается загрузка сегментного регистра и загрузка соответствующего дескриптора в теневой регистр. В противном случае, процессор инициализирует прерывания по особым случаям и загрузка селектора не производится. Когда выбираемый селектором дескриптор находится вне предела дескрипторной таблицы или дескриптор имеет неверный тип, процессор формирует нарушение общей защиты (прерывание 13h). Если селектор отмечен как не присутствующий, то генерируется нарушение неприсутствия (прерывание 11h). Если ошибка связана с регистром SS, то генерируется прерывание 12h. При генерировании нарушений, ошибочный селектор включается в стек, и процедуры обработки особых случаев могут выяснить причину нарушения. В отличие от процессора 8086 в защищенном режиме по селектору не возможно узнать какое адресное пространство определяют адресные регистры. Селектор определяет только номер дескриптора, описывающего адресное пространство.

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

LARreg16/32, reg16/mem16

Load Access Rights Загрузка прав доступа

LSL reg16/32, reg16/mem16

Load Segment LimitЗагрузка предела

VERR

reg16/mem16

Verity for Read

Проверка на считыва-

ние

 

 

 

VERW

reg16/mem16

Verity for Write

Проверка на запись

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

9.1.1.6 Локальные дескрипторные таблицы

Локальная дескрипторная таблица представляет собой массив восьмибайтных дескрипторов.

В любой момент времени процессор работает лишь с одной LDT, а при переключении задач изменяется и активная LDT, т.к. дескрипторы, описывающие

117

Соседние файлы в папке OSISP