Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
27 34,,.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.86 Mб
Скачать

30 Основные понятия защищенного режима. Адресация в защ.Режиме. Дескрипторы и таблицы. Системы привилегий . Защита.

Intel 80286 имеет поддержку многозадачных ОС . И упрощенный процесс переименования задач. Адресная шина 286 была увеличена с 20 до 24 разрядов, что привело к к расширению адресного пространства. В защ режиме программа может записывать данные только в обл ости памяти.

Основные преимущества:

  1. Возможность непосредственной адресации за пределом 1 Мбайта

  2. для процессоров х80, реализован механизм строчной вирт памяти позволяющий программа работать с памятью

  3. аппаратная поддержка позволяет создавать на основе процессоров высокопроизводительные мультизад и многопоьз. Системы.

Адресация в защ.режиме:

В 8086 в рамках адресного пространства = 1 килобайт одновременно были доступны сегменты по 64 килобайта в семейтве х86 ворганизованно линейное пространство = 2 в 32 степени байта в котором допускается создание любого числа семейств.

Дискрипторы храг=нятся в таблицах : Глобальная дескрипторная таблица GDT - это область памяти, в которой находятся дескрипторы. Процессору всё равно, где именно вы расположили эту таблицу, но в любом случает она будет находится в первом мегабайте адресного пространства, потому что только из режима реальных адресов можно перевести процессор в защищённый режим. Также подразумевается, что сама таблица GDT будет выравнена на границу 8 байт, так как дескрипторы, из которых она состоит, имеют 8-байтный размер. Такое выравнивание позволит процессору максимально быстро обращаться к дескрипторам, что, естественно, увеличивает производительность. Число дескрипторов, определённых в GDT, может быть любым, от 0 до 8192. Нулевой дескриптор, т.е. определённый в самом начале GDT, процессор не использует, обращение к такому дескриптору могло бы быть, когда поле Index селектора равно 0. Если всё же в программе встречается обращение к нулевому дескриптору, то процессор генерирует исключение и не позволит доступ к такому дескриптору. В связи с этим, везде в литературе рекомендуется использовать нулевой дескриптор как шаблон, на основе которого программа может создавать новые дескрипторы, но на практике их удобнее создавать иными способами, о которых мы ещё будем говорить.

Таблица прерываний глобальна. Размещение в физической памяти определяется регистром IDTR.

При возникновении прерывания (внешнего, аппаратного, или вызванного инструкцией Int):

  • из IDT выбирается дескриптор шлюза, соответственно номеру прерывания;

  • проверяются условия защиты (права доступа);

  • при соблюдении условий защиты выполняется переход на подпрограмму-обработчик этого прерывания;

В отличие от GDT, LDT может быть много (соответственно количеству задач (потоков), но не обязательно). Каждая задача может иметь свою. На расположение таблицы текущей задачи указывает регистр LDTR.

Размер и расположение LDT в линейной памяти определяются дескриптором LDT из GDT (но это не означает, что размер LDT может быть больше 65536 байт).

Первый дескриптор LDT (? 0) использовать можно.

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

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

Дескрипторы представляют собой 8-байтные структуры данных, используемые для определения свойств программных элементов (сегментов, вентилей и таблиц). Дескриптор определяет положение элемента в памяти, размер занимаемой им области, его назначение и характеристики защиты. Все дескрипторы хранятся в таблицах, обращение к которым поддерживается процессором аппаратно.

Контроль характеристик защиты дескрипторов (поля "Тип" и DPL) позволяет установить форматы требуемых дескрипторов в соответствие с назначением используемого сегмента. Данный контроль проводится при загрузке в сегментный регистр селектора дескриптора для контроля допустимости такой операции и при выполнении команды обращения к сегментному регистру.

Защита памяти с помощью сегментации не позволяет:

  • использовать сегменты не по назначению (например, пытаться трактовать область данных как коды инструкций);

  • нарушать права доступа (пытаться модифицировать сегмент, предназначенный только для чтения, обращаться к сегменту, не имея достаточных привилегий, и т. п.);

  • адресоваться к элементам, выходящим за границу сегмента;

  • изменять содержимое таблиц дескрипторов (параметров сегментов), не имея достаточных привилегий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]