Interrupt Vector Table — Änderungen 2064 → 2065

Zeile 1: Zeile 1:
−
Die Interrupt Vector Table (kurz IVT) befindet sich im ersten Kilobyte des Arbeitsspeichers (siehe [[Speicherbereiche]]). Ihre Aufgabe besteht darin, die Adresse der [[ISR | Interrupt Service Routine]] für jeden [[Interrupt]] bereitzustellen. Die IVT hat nur im [[real mode]] Bedeutung und wird im [[protected mode]] durch die [[IDT]] abgelöst.<br>
+
Die Interrupt Vector Table (kurz IVT) befindet sich im ersten Kilobyte des Arbeitsspeichers (siehe [[Speicherbereiche]]). Ihre Aufgabe besteht darin, die Adresse der [[ISR | Interrupt Service Routine]] für jeden [[Interrupt]] bereitzustellen. Die IVT hat nur im [[real mode]] Bedeutung und wird im [[protected mode]] durch die [[IDT]] abgelöst.
 +
 
 +
== Aufbau ==
 
Insgesamt stehen 256 Interrupts zur Verfügung, deshalb muss die IVT auch 256 Einträge (einen für jeden Interrupt) haben. Ein Eintrag ist 4 Byte groß und enthält eine Realmodeadresse, die aus 2 Byte Segment und 2 Byte Offset besteht. Ein Eintrag sieht im Speicher folgendermaßen aus:
 
Insgesamt stehen 256 Interrupts zur Verfügung, deshalb muss die IVT auch 256 Einträge (einen für jeden Interrupt) haben. Ein Eintrag ist 4 Byte groß und enthält eine Realmodeadresse, die aus 2 Byte Segment und 2 Byte Offset besteht. Ein Eintrag sieht im Speicher folgendermaßen aus:
  
Zeile 10: Zeile 12:
 
         +---------------+---------------+
 
         +---------------+---------------+
  
−
Die IVT belegt somit genau 256 * 4 = 1024 Byte.<br><br>
+
Die IVT belegt somit genau 256 * 4 = 1024 Byte. Die genaue Verwendung dieser Einträge bei Auftreten eines Interrupts wird im Artikel [[Interrupt]] erklärt.
 +
 
 +
== Während des Bootvorgangs ==
 
Nach dem Start des Computers wird die IVT automatisch vom [[BIOS]] erstellt und die Adressen zeigen auf Funktionen, die entweder das BIOS einem Betriebssystem zur Verfügung stellt oder die benötigt werden, um mit der Hardware zu kommunizieren.
 
Nach dem Start des Computers wird die IVT automatisch vom [[BIOS]] erstellt und die Adressen zeigen auf Funktionen, die entweder das BIOS einem Betriebssystem zur Verfügung stellt oder die benötigt werden, um mit der Hardware zu kommunizieren.
−
Nach dem [[Bootvorgang]] kann es für ein Betriebssystem sinnvoll sein einige Interrupts durch eigene Funktionen behandeln zu lassen. Dazu zählt vor allem die Exceptions.<br>
+
Nach dem [[Bootvorgang]] kann es für ein Betriebssystem sinnvoll sein einige Interrupts durch eigene Funktionen behandeln zu lassen. Dazu zählt vor allem die Exceptions.
 +
 
 +
== Beispiel ==
 
Beispielsweise will man wahrscheinlich eine "Division durch 0" (Interrupt 0) anders als das BIOS behandeln (z.B. den momentanen Prozess beenden und zur Shell zurückkehren):
 
Beispielsweise will man wahrscheinlich eine "Division durch 0" (Interrupt 0) anders als das BIOS behandeln (z.B. den momentanen Prozess beenden und zur Shell zurückkehren):
  
Zeile 23: Zeile 29:
 
;sti                            ; IRQs aktivieren
 
;sti                            ; IRQs aktivieren
 
</pre>
 
</pre>
 +
 +
== Links ==
 +
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/WWW/files.html Ralf Brown's Interrupt List] (Download)
 +
* [http://www.ctyme.com/intr/int.htm Ralf Brown's Interrupt List] (online anschaubar)
  
 
[[Category:Glossar]]
 
[[Category:Glossar]]