Информационная основа работы механизма защиты.
Информационной основой механизма защиты является дескриптор. По области использования дескрипторы делятся на системные и пользовательские. По структуре и типу описываемых объектов различают следующие дескрипторы:
- дескрипторы – описатели сегментов;
- дескрипторы – описатели точек входа в программы, т.е. дескрипторы шлюзов.
К описателям сегментов относятся:
1. дескрипторы сегментов (программных, стековых, данных)
2. системные дескрипторы: дескрипторы сегментов состояния задач и дескрипторы сегментов различных таблиц.
Все дескрипторы шлюзов являются системными. К ним относятся:
1. дескрипторы шлюзов вызовов;
2. дескрипторы шлюзов прерываний;
3. дескрипторы шлюзов ловушек;
4. дескрипторы шлюзов задач.
Дескрипторы сегментов имеют формат 64 разряда (8 байт), из которых механизм защиты использует 20-ти разрядное поле размера сегмента, 8-ми разрядный байт доступа (AR) и бит G – дробности (гранулярности).
Байт прав доступа содержит следующие поля:
P | DPL | S | IPE |
7 6 5 4 3 0
P (Present) - бит присутствия сегмента в оперативной памяти. Используется механизмом виртуальной памяти для организации загрузки (подкачки – свопинга) нужного сегмента с диска в оперативную память. Если сегмент в оперативной памяти отсутствует, то Р=0. Бит Р устанавливается в единицу при загрузке сегмента в ОЗУ. Механизмом защиты бит Р используется в проверках при загрузке стекового сегмента.
DPL (Descriptor Privilege Level) - двухразрядное поле, определяющее уровень привилегий сегмента. Механизмом защиты применяется в проверках корректности использования сегмента.
S – тип дескриптора сегмента. При S=0 дескриптор является сегментным, т.е. определяет сегменты программ, данных и стеков. При S=1 дескриптор используется как системный дескриптор.
TIPE – четырехразрядное поле, интерпретируемое по разному в зависимости от типа дескрипторов.
В системных дескрипторах, т.е. при S=1, разряды поля TIPE кодируют подтипы системных дескрипторов. Коды подтипов системных дескрипторов используются механизмом защиты при проверках корректности обращений к программам.
В дескрипторах сегментов программ и данных , т.е. при S=0 , поле TIPE содержит следующие признаки:
3 2 1 0
E | ED/C | W/R | A |
E – бит исполняемости, который уточняет тип сегмента. При E=0 сегменты определяются как сегменты данных , а при Е=1 – как кодовые сегменты. Механизмом защиты используются при проверках корректности обращений к программам и данным.
ED/C – для сегментов данных этот бит определяет направление расширения (ED – расширение). Используется механизмом защиты при проверках соответствия адреса обращения границам сегмента. Для программных сегментов этот бит определяет подчиненность сегмента (с – conforming). Механизмом защиты используется при проверках корректности межсегментных передач управления.
W/R – определяет права использования. Для программных сегментов, т.е. при E=1, признак W/R определяет доступность сегментов по чтению (R от слова Read). Изменение, т.е. модификация, программных сегментов запрещена безусловно. При этом при R=1 разрешается производить чтение содержимого сегментов программ. При R=0 попытка чтения сегмента программ вызывает прерывание, что делает невозможным копирование программ, т.е. чтение сегмента с целью его копирования. Следует отметить, что при R=0 программа из этого сегмента выполняться будет без всяких ограничений, т.е. допускается чтение команд из сегмента только для их исполнения, а не для копирования. Для сегментов данных, т.е. при Е=0, признак W/R определяет доступность сегментов по записи (W от слова Write). Процедура чтения сегментов данных разрешена безусловно, а запись может быть либо разрешена при W=1 , либо запрещена при W=0. Механизмом защиты используется при проверках корректности использования сегмента.
А – бит обращения (доступа) к сегменту. Бит А устанавливается в единицу при обращении к сегменту, т.е. при загрузке соответствующего селектора в сегментный регистр. Этот бит периодически проверяется ОС, которая выявляет невостребованные сегменты, имеющие А=0. Сегменты с А=0 выводятся из ОЗУ на диск, освобождая место для других сегментов. Этот бит механизмом защиты непосредственно не используется, а используется в механизме виртуальной памяти.
Дата добавления: 2015-08-14; просмотров: 697;