Podręcznik
6. Sytuacje wyjątkowe
Inną klasą zdarzeń, która jest obsługiwana w sposób bardzo podobny do przerwań są sytuacje wyjątkowe. Jak sama nazwa wskazuje, sytuacje wyjątkowe wskazują wystąpienie pewnego zdarzenia w systemie, które musi być obsłużone. Mogą to być sytuacje krytyczne, np. błąd sprzętowy, ale również częste i normalne sytuacje podczas pracy komputera, jak np. błąd braku strony, przy stosowaniu pamięci wirtualnej. Generalnie rozróżniamy następujące typy sytuacji wyjątkowych:
- Wykryte na etapie wykonywania instrukcji przez procesor (dzielenie przez zero, page fault, general protection …).
- Generowane przez oprogramowanie (INTO - call to interrupt if overflow, INT 3 - breakpoint, INT n).
- Błędy sprzętowe (ang. machine check exceptions).
Inną klasyfikację sytuacji wyjątkowych można podać ze względu na sposób ich obsługi:
- Błędy (ang. Faults) – wznowienie działania programu następuje przez ponowienie wykonania instrukcji generującej sytuację wyjątkową.
- Pułapki (ang. Traps) – w tym przypadku wznowienie wykonywania programu następuje od instrukcji następnej po tej wywołującej sytuację wyjątkową.
- Porzucenia (ang. Aborts) – są nastawione na usługę poważnych błędów, w tym przypadku następuje zatrzymanie działania systemu, a na ekranie powinniśmy zobaczyć, co spowodowało błąd.