Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 19 стр.

UptoLike

Составители: 

19
уровнем привилегий, либо к подчиненным сегментам, уровень которых
выше, CPL – Current Privilege Level (при этом CPL не изменяется). Для
переходов с изменением уровня привилегий используются вентили (Gate),
называемые также шлюзами. Для каждого способа косвенной
межсегментной передачи управления имеются соответствующие вентили.
Их использование позволяет процессору автоматически осуществлять
контроль защиты. Вентили вызова (Call Gates) используются для вызова
процедур со
сменой уровня привилегий. Вентили задач (Task Gates)
используются для переключения задач. Вентили прерываний (Interrupt
Gates) и ловушек (Trap Gates) определяют процедуры обслуживания
прерываний.
Вентили вызова позволяют автоматически копировать заданное
число слов из старого стека в новый. Вентили прерываний отличаются от
вентилей ловушек только тем, что они запрещают прерывания
(сбрасывают флаг IF), а вентили ловушекнет.
Для каждого типа
вентилей используются соответствующие дескрипторы вентилей (Gate
Descriptors). Формат дескрипторов вентилей приведен на рисунке 1.7.
В байте управления доступом у этих дескрипторов бит Р определяет
действительность (Р = 1) или недействительность (Р = 0) содержимого
сегмента. Поле DPL задает уровень привилегий. Поле type_seg определяет
тип вентиля:
o 4 – вентиль вызова 80286 (Call Gate),
o 5 – вентиль задачи 80286 (Task Gate),
o 6 – вентиль прерывания 80286 (Interrupt Gate),
o 7 – вентиль ловушки 80286 (Trap Gate),
o C – вентиль вызова 386+ (Call Gate),
o D – вентиль задачи 386+ (Task Gate),
o E – вентиль прерывания 386+ (Interrupt Gate),
уровнем привилегий, либо к подчиненным сегментам, уровень которых
выше, CPL – Current Privilege Level (при этом CPL не изменяется). Для
переходов с изменением уровня привилегий используются вентили (Gate),
называемые     также    шлюзами.       Для    каждого    способа    косвенной
межсегментной передачи управления имеются соответствующие вентили.
Их использование позволяет процессору автоматически осуществлять
контроль защиты. Вентили вызова (Call Gates) используются для вызова
процедур со сменой уровня привилегий. Вентили задач (Task Gates)
используются для переключения задач. Вентили прерываний (Interrupt
Gates) и ловушек (Trap Gates) определяют процедуры обслуживания
прерываний.
     Вентили     вызова позволяют       автоматически копировать заданное
число слов из старого стека в новый. Вентили прерываний отличаются от
вентилей   ловушек     только   тем,    что   они   запрещают      прерывания
(сбрасывают флаг IF), а вентили ловушек – нет. Для каждого типа
вентилей используются соответствующие дескрипторы вентилей (Gate
Descriptors). Формат дескрипторов вентилей приведен на рисунке 1.7.
     В байте управления доступом у этих дескрипторов бит Р определяет
действительность (Р = 1) или недействительность (Р = 0) содержимого
сегмента. Поле DPL задает уровень привилегий. Поле type_seg определяет
тип вентиля:
     o   4 – вентиль вызова 80286 (Call Gate),
     o   5 – вентиль задачи 80286 (Task Gate),
     o   6 – вентиль прерывания 80286 (Interrupt Gate),
     o   7 – вентиль ловушки 80286 (Trap Gate),
     o   C – вентиль вызова 386+ (Call Gate),
     o   D – вентиль задачи 386+ (Task Gate),
     o   E – вентиль прерывания 386+ (Interrupt Gate),



                                       19