• Попытка задачи использовать сегмент с более высоким уровнем привилегий приводит к особому случаю защиты.
• Привилегии устанавливаются программами операционной системы в байте доступа дескриптора сегмента при заполнении дескрипторных таблиц.
• В защищенном режимепроцессора установлены четыре уровня привилегий: 0, 1, 2 и 3 (0 - самый привилегированный).
• Механизм проверки привилегий работает в ситуациях, которые можно назвать межсегментными (доступ к другому сегменту данных или стековому сегменту, реализация межсегментных передач управления в случае особых ситуаций, при прерываниях или при выполнении команд безусловной передачи управления CALL, INT, JMP).
• В проверку привилегий входят три различных уровня привилегий:
- текущий уровень привилегий CPL (Current Privilege Level);
-запрашиваемый уровень привилегий RPL - Requested Privilege Level (уровень привилегий селектора инициатора запроса);
- уровень привилегий дескриптора целевого сегмента назначения DPL (Discriptor Privilege Level) указывает минимальный уровень привилегий, необходимый для доступа к данному сегменту.
• Содержимое поля RPL, при реализации внешних вызовов, должно быть численно меньше или равно значению DPL выбираемого дескриптора
• Уровень привилегий выполняемой программы носит название текущий уровень привилегий CPL (Current Privilege Level). Он равен значению DPL в байте доступа дескриптора, определяющего текущий кодовый сегмент.
• При выборе дескриптора кодового сегмента из соответствующей дескрипторной таблицы и запоминании его в кэш-регистре CSт значение CPL копируется в поле RPL селектора кодового сегмента, размещаемого в регистре CS.
• Так как регистр CS нельзя использовать в качестве приемника, то программа не может изменить содержимое CS, а следовательно, и не может изменить свой уровень привилегий.
• Однако с помощью специальной команды (ARPL) текущий уровень привилегий CPL программно можно проанализировать.
Для доступа к сегменту данных необходимо, чтобы уровень привилегий дескриптора запрашиваемого сегмента DPL был больше или равен наибольшему из значений текущего CPL и запрашиваемого RPL уровней привилегий:
DPL ³max (RPL \/ CPL)
Таким образом, обращение к другому сегменту может быть выполнено только в случае, если текущая программа более привилегированна, чем вызываемый ею сегмент.
• Для доступа к сегменту кода (при межсегментных передачах управления) ограничения защиты более жесткие. Критерий защиты при межсегментных передачах управления в общем случае имеет вид: DPL = max (RPL \/ CPL)
Исключение – шлюзы вызова:
• F: осуществляют механизм передачи управления. Это системный объект, содержащий адрес разрешенной точки входа в более привилегированную процедуру. При использовании шлюзов используется полный указатель адреса перехода(сепектор:смещение, например SS:IP), обеспечивая тем самым вход в защищенную процедуру только в разрешенной точке.
• Шлюз вызова гарантирует, что любые передачи управления другим кодовым сегментам будут происходить в правильные (разрешенные) точки входа, а не в середину процедуры или, что еще хуже, в середину команды.
• Физически шлюзы вызова представляют собой набор адресов вызова, определяемых специальной таблицей адресов.
• В отличие от дескрипторов сегментов кода, данных или стека, а также системных дескрипторов сегментов LDT и TSS, шлюзы вызова не определяют никакого адресного пространства, поэтому в них нет полей базы и предела.
• По существу, шлюзы вызова не являются дескрипторами (описателями), но их удобно размещать в дескрипторных таблицах.
При использовании шлюзов вызова передача управления всегда осуществляется косвенно. Вызывающая программа обращается к шлюзу вызова, а он (шлюз) определяет точку входа в вызываемой процедуре.
20. Краткая характеристика системы команд МП PentiumIV.
Система команд – одна из основных архитектурных характеристик МП. Система команд определяет совокупность операций, реализуемых в МП. В понятие системы команд входят:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.