Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MPT_otvety_na_ekzamen.docx
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
417 Кб
Скачать
☆
  1. Организация общей (базовой) защиты в мп х86:

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

Базовая защита состоит из следующих контролирующих действий.

Контроль адресации при обращении к памяти.

Контроль адресации при обращении к памяти в основном включает в себя следующие операции.

- Как только селектор, какого либо сегмента, поступает в соответствующий сегментный регистр, индекс селектора, умноженный на 8, сравнивается с пределом, приведенным в системном регистре GDTR. Этим самым контролируется реальная возможность нахождения искомого дескриптора в глобальной дескрипторной таблице.

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

Если смещение в сегменте превышает предел, возникает особый случай (исключение), процессор уходит на прерывание и выполняет процедуру, обрабатывающую нарушение общей защиты. При этом если бит ED в байте прав доступа равен 1, то процессор имеет дело с сегментом стека и, указанная процедура сравнения предела сегмента со смещением в сегменте неправомерна, Зато проверяется обязательная возможность записи в этот сегмент (W=1).

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

Контроль исполняемости сегмента.

Исполняемый сегмент должен быть обязательно сегментом кода, в котором размещены исполняемые программы. Следовательно, и при первом вызове программного сегмента и при каждой передаче управления в программе необходима проверка состояния бита E в байте прав доступа. Он должен обязательно быть равен 1. Если же он равен 0, это значит, что процессор имеет дело с сегментом данных или стека и исполнение его кода может привести к непредсказуемым последствием, в том числе и к зависанию системы.

Контроль возможности копирования кодового сегмента.

В процессе создания программного обеспечения некоторые программы целесообразно защитить от нежелательного копирования. Поэтому каждое обращение к программному сегменту сопровождается проверкой бита R в байте прав доступа его дескриптора. Если значение этого бита равно 0, то это значит, что данный сегмент защищен от считывания и копирование его содержимого невозможно.

Контроль считываемости сегментов данных и стека.

Некоторые сегменты данных могут быть использованы для размещения каких-либо очень важных таблиц, констант, справочных данных, к которым можно обращаться только для считывания. Такие сегменты должны быть защищены как от случайной, так и от несанкционированной записи, которая может исказить содержимое этого справочного материала. Контроль запрета записи осуществляется по состоянию бита W в байте прав доступа. При W=0 запись в сегмент запрещена.

Контроль способа считываемости данных.

При вызове сегмента данных процессору необходимо, прежде всего, убедиться является ли этот сегмент сегментом данных или же он является сегментом стека. Если в байте прав доступа бит ED равен 0, то имеет место сегмент данных и данные должны считываться от младших адресов к старшим, начиная от базового адреса до адреса, равного сумме базового адреса и предела, указанного в дескрипторе. Если же ED=1, то имеет место сегмент стека и данные считываются от старших адресов к младшим, начиная от адреса, определяемого регистром указателя стека SP до значения предела.

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