Шлюз дескриптора задачи


Дескриптор шлюза задачи обеспечивает косвенные, защищенные ссылки к задаче. Формат шлюза задачи показан на Рисунке 7-4.

DPL Уровень привилегированности дескриптора
P Присутствие сегмента
Поле Селектор шлюза задачи индексирует дескриптор TSS. RPL в данном селекторе не используется. DPL шлюза задачи управляет доступом к дескриптору для переключения задачи. Процедура не может выбрать дескриптор шлюза задачи до тех пор, пока RPL селектора и CPL процедуры не будут численно меньше или равны DPL дескриптора. Тем самым предотвращается переключение задачи менее привилегированными, чем она сама, процедурами.
Процедура с доступом к шлюзу задачи может вызвать переключение задачи, как и процедура с доступом к дескриптору TSS. Как шлюзы задачи, так и дескрипторы TSS предназначены для решения следующих вопросов:
1. Необходимость иметь для задач только один бит Занятости. Поскольку этот бит хранится в дескрипторе TSS, каждая задача должна иметь только один такой дескриптор. Однако, может существовать несколько шлюзов задачи, выбирающих один дескриптор TSS.
2. Необходимость обеспечить селективный доступ к задачам. Шлюзы задачи позволяют решить эту проблему, поскольку они могут размещаться в LDT и иметь DPL, отличный от DPL дескриптора TSS. Процедура, недостаточно привилегированная для использования дескриптора TSS в GDT (который обычно имеет DPL, равный 0), может тем не менее вызвать другую задачу, если она имеет доступ к шлюзу задачи в LDT. Благодаря шлюзам задачи операционная система может ограничить переключение задач конкретными задачами.
3. Необходимость выполнения переключения задачи в случае прерывания или особой ситуации. Если прерывание или исключение передает в шлюз задачи вектор, процессор i486 выполняет переключение на указанную задачу.

Загрузка...