Interrupts & Exceptions

Auf einen Blick

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:

interrupt-ablauf.html

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

← Kapitelübersicht


⬅️ Kernel- und User-Modus · System Calls ➡️

Built with LogoFlowershow