Программная модель МП PentiumIV. Совокупность всех программно доступных регистров микропроцессора, страница 5

•  Попытка задачи использовать сегмент с более высоким уровнем привилегий приводит к особому случаю защиты.

•  Привилегии устанавливаются программами операционной системы в байте доступа дескриптора сегмента при заполнении дескрипторных таблиц.

•  В защищенном режимепроцессора установлены четыре уровня привилегий: 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.

Система команд – одна из основных архитектурных характеристик МП. Система команд определяет совокупность операций, реализуемых в МП. В понятие системы команд входят: