Interrupts & Exceptions
Interrupts & Exceptions
Ein Interrupt ist eine Unterbrechung des Kontrollflusses, die das OS benachrichtigt. Echte Interrupts sind asynchron (Hardware, Timer); synchrone Unterbrechungen heißen Exceptions (Faults, Traps, Aborts). Die Handler-Adressen stehen in der IDT.
Definition
Interrupts dienen der Benachrichtigung des Betriebssystems und werden durch spezielle Handler-Funktionen des OS bearbeitet. Die Orte dieser Handler stehen in einer Interrupt Descriptor Table (IDT) im Hauptspeicher.
Quellen sind:
- die Hardware (z.B. eine fertige Festplatte, eine Netzwerkkarte, der Timer),
- oder Anwendungsprogramme, die Dienste des OS benötigen (System Calls sind ein Spezialfall).
Asynchron vs. synchron
- Interrupt im strengen Sinn = asynchron: kommt ungefragt „von außen", unabhängig vom gerade laufenden Befehl.
- Exception = synchron: entsteht durch den aktuellen Befehl. Unterarten:
- Fault — behebbar, Befehl wird danach wiederholt (z.B. Page Fault).
- Trap — gewollt, z.B. ein System Call oder ein Breakpoint.
- Abort — schwerer, nicht behebbarer Fehler.
Ablauf am Beispiel Timer-Interrupt
Ein Multitasking-OS programmiert eine Hardware-Uhr auf ein Zeitintervall. Der ausgelöste Timer-Interrupt unterbricht den laufenden Prozess; der Handler bestimmt den nächsten Prozess → ein Kontextwechsel. Schritt für Schritt:
Einordnung
Interrupts sind der Motor des Multitaskings: Ohne den Timer-Interrupt könnte das OS einem rechnenden Prozess die CPU nie entziehen (Scheduling).
Verwandte Notes
System Calls · Kernel- und User-Modus · Prozesskontext & Kontextwechsel · Page Faults · Scheduling-Grundlagen