16. Организация вхождения в прерывающую
программу. Таблица векторов прерываний
Поиск обработчика ведется по вектору
прерываний (вектор – косвенный адрес
обработчика). Реализуется он с помощью хранящейся в
ОП таблицы векторов прерывания, где содержатся адреса программ обработки
прерываний. Входом в таблицу служит вектор прерывания, Начальный адрес таблицы
(база) обычно задается неявно, то есть под таблицу отводится вполне
определенная часть памяти. В старых компьютерах (до Pentium) таблица векторов занимала начало
адресного пространства, в современных компьютерах место таблицы строго не
фиксировано, начало таблицы задается с помощью базы. Таблица векторов должна занимать непрерывный участок
памяти.
Рассмотрим этапы работы с прерыванием.
Поиск обработчика
прерывания: IDTR – Interrupt descriptor table register.
Предел – адрес последнего дескриптора.
База – начальный адрес таблицы.
Дескриптор шлюза прерывания:
P –
признак присутствия сегмента в памяти
DPL –
уровень привилегий (0-3)
* - тип шлюза: 0 – шлюз прерывания, 1 – шлюз ловушки.
D –
размер шлюза: 1-32 бита, 0-16 бит.
Вызов обработчика прерывания:
|