Таблиця векторів переривань
Табли́ця векторі́в перерива́нь (англ. Interrupt Descriptor Table, IDT) використовується в архітектурі x86 і слугує для визначення правильної відповіді на переривання і винятки.
У мікропроцесорах Intel 8086/80186 таблиця векторів переривань розташована в першому кілобайті пам'яті починаючи з адреси 0000:0000 і містить 256 векторів переривань у форматі «сегмент: зміщення». Починаючи з процесора 80286, адреса у фізичній пам'яті та розмір таблиці переривань визначається 48-бітовим регістром IDTR.
В IDT використовуються переривання таких типів: апаратні переривання, програмні переривання і переривання, зарезервовані процесором, звані винятками (перші 32) на випадок виникнення деяких подій (ділення на нуль, помилка трасування, переповнення)[1].
У реальному режимі елементом IDT є 32-бітова FAR-адреса опрацьовувача переривання.
У захищеному режимі елементом IDT є шлюз переривання довжиною 8 байтів, що містить сегментну (логічну) адресу опрацьовувача переривання, права доступу тощо.
У довгому режимі розмір дескриптора переривання збільшено до 16 байтів.
У режимі V86 за використання розширення VME таблиця векторів розташовується за віртуальною адресою 0000:0000. Без використання цього розширення (і у випадку, коли переадресацію переривань заборонено) при виникненні переривання процесор залишає режим V86 і виконує звичайний опрацьовувач захищеного режиму.
Перший етап ініціалізації виконує BIOS, перед завантаженням ОС. Другий — безпосередньо сама операційна система. Операційній системі доступне змінення деяких адрес переривань.
- ↑ Exceptions - OSDev Wiki. wiki.osdev.org. Процитовано 17 квітня 2021.
- Докладніше про переривання (рос.)