7. Obsługa przerwań i sytuacji wyjątkowych, wektor przerwań

Przerwania sprzętowe i sytuacje wyjątkowe są obsługiwane poprzez tablicę przerwań IDT (ang. Interrupt Descriptor Table) (Rys.22). Tablica ta zawiera indeksowane komórki (0-255), które opisują sposób obsługi konkretnych przerwań. Indeks do tej tablicy nazywany jest wektorem przerwań. Przerwania sprzętowe mają indeksy powyżej 32. Indeksy poniżej 32 są zarezerwowane dla przerwań niemaskowalnych i sytuacji wyjątkowych. Numery przerwań maskowalnych są przyporządkowywane według potrzeb. Tablica wektorów przerwań w trybie chronionym procesora jest przedstawiona w tabeli 3.

Rys. 22. Tablica przerwań

 

Tabela 3. Tablica wektorów przerwań w trybie chronionym procesora

 

Wykonanie (obsługa) przerwania zachodzi w następujący sposób. Każde przerwanie musi być obsłużone przez specjalny program. Tablica Interrupt Descriptor Table (IDT) zawiera deskryptory tych programów (określone przez numer przerwania). Sprzęt lokalizuje odpowiedni deskryptor. Zachodzi zmiana kontekstu, licznik programów, wskaźnik stosu, stan CPU i pamięci dla przerywanego programu są odkładane na stosie. Uruchamiany jest program obsługi przerwania.