Прерывания в защищенном режиме. Структура дескриптора.


Организация дескрипторной таблицы прерываний. В дескрипторной таблице может содержаться три вида дескрипторов: шлюзы задачи, шлюзы прерываний, шлюзы ловушки. Структура дескриптора. Селектор выбирает дескриптор сегмента в котором находиться обработчик. Смещение это смещение в этом сегменте. DPL- уровень привилегий, минимальный уровень привилегий, которым должна обладать задача, чтобы передать управление через этот шлюз. Чаще всего 3. Передача управления по прерыванию. 1. по параметру прерывания определяется номер дескриптора в IDT. 2. Поле селектор выбирает дескриптор в LDT или GDT, описывающий сегмент кода обработчика. 3. По дескриптору определенному в п.2 определяется базовый адрес сегмента кода обработчика. 4. Смещение внутри сегмента кода обработчика – точка входа, определяется из смещения в дескрипторе шлюза. 4.1. рекомендуется чтобы прерывания адресовали обработчик через GDT, т.к. может получиться такая ситуация когда особый случай сгенерируется в одной задаче, а обработчик находиться в LDT другой задачи. 4.2. Касается отличия шлюза прерывания от шлюза ловушки. Шлюз прерывания запрещает маскируемое прерывание. Это предназначено для запрещения многократной реакции на этот сигнал, связанное с тем, что сигнал на линии INTR может задержаться некоторое время, процессор за это время выполнит несколько команд. Проверка состояния сигнала INTR происходит после выполнения каждой команды, для предотвращения вложенности команд. Задачи не реентерабельны и поэтому нужно обеспечить невозможность возникновения внутри задачи обработчика, особого случая с таким же номером.

Загрузка...