Дескриптор шлюза задачи обеспечивает косвенные, защищенные ссылки к задаче. Формат шлюза задачи показан на Рисунке 7-4.
Поле Селектор шлюза задачи индексирует дескриптор TSS. RPL в данном селекторе не используется.
DPL шлюза задачи управляет доступом к дескриптору для переключения задачи. Процедура не может выбрать дескриптор шлюза задачи до тех пор, пока RPL селектора и CPL процедуры не будут численно меньше или равны DPL дескриптора. Тем самым предотвращается переключение задачи менее привилегированными, чем она сама, процедурами. (Отметим, что при использовании шлюза задачи DPL дескриптора TSS назначения не используется).
Дескриптор шлюза задачи 1 1 1 1 1 1 131 6 5 4 3 2 1 0 9 8 7 0---------------------------------------------------------------| | | D | | || Резервируется |P| P |0 0 1 0 1| Резервируется|+4| | | L | | ||-------------------------------------------------------------|| Селектор сегмента TSS | Резервируется |+0--------------------------------------------------------------- DPL Уровень привилегированности дескриптора P Присутствие сегментаРисунок 7-4. Дескриптор шлюза задачи
Процедура с доступом к шлюзу задачи может вызвать переключение задачи, как и процедура с доступом к дескриптору TSS. Как шлюзы задачи, так и дескрипторы TSS предназначены для решения следующих вопросов: 1. Необходимость иметь для задач только один бит Занятости. Поскольку этот бит хранится в дескрипторе TSS, каждая задача должна иметь только один такой дескриптор. Однако, может существовать несколько шлюзов задачи, выбирающих один дескриптор TSS. 2. Необходимость обеспечить селективный доступ к задачам. Шлюзы задачи позволяют решить эту проблему, поскольку они могут размещаться в LDT и иметь DPL, отличный от DPL дескриптора TSS. Процедура, недостаточно привилегированная для использования дескриптора TSS в GDT (который обычно имеет DPL, равный 0), может тем не менее вызвать другую задачу, если она имеет доступ к шлюзу задачи в LDT. Благодаря шлюзам задачи операционная система может ограничить переключение задач конкретными задачами. 3. Необходимость выполнения переключения задачи в случае прерывания или особой ситуации. Если прерывание или исключение передает в шлюз задачи вектор, процессор i486 выполняет переключение на указанную задачу. На Рисунке 7-5 показано, как шлюз задачи в LDT и шлюз задачи в IDT могут идентифицировать одну и ту же задачу.