Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik
Unterbrechungsbehandlung

Das Interrupt Subsystem. Mehr ...

Namensbereiche

 IOAPIC
 Abstraktion des IO-APICs, der zur Verwaltung der externen Interrupts dient.Kernstück des IOAPICs ist die IO-Redirection Table. Dort lässt sich frei konfigurieren, welchem Interruptvektor eine bestimmte externe Unterbrechung zugeordnet werden soll. Ein Eintrag in dieser Tabelle ist 64 Bit breit. Die Überlagerung (union) IOAPIC::RedirectionTableEntry enthält Bitfelder, welche die einzelnen Einstellungen eines Eintrages zugänglich machen sowie zwei 32 Bit-Werte, die die passende Repräsentation für die Register der IO-Redirection Table aus den Bitfeldern liefern.
 
 LAPIC
 Abstraktion des in der CPU integrierten local APICs.In modernen PCs besitzt jede CPU einen sogenannten "local APIC". Dieser vermittelt zwischen dem I/O APIC, an den die externen Interruptquellen angeschlossen sind, und der CPU. Interruptnachrichten, welche den lokalen APIC von aussen erreichen, werden an den zugeordneten Prozessorkern weitergereicht, um dort die Interruptbearbeitung anzustoßen.
 
 Plugbox
 Abstraktion einer Interruptvektortabelle.
 

Klassen

class  Gate
 Klasse von Objekten, die in der Lage sind, Unterbrechungen zu behandeln. Mehr ...
 

Funktionen

void guardian (uint32_t vector, irq_context *context)
 Low-Level Interrupt-Behandlung. Mehr ...
 

Ausführliche Beschreibung

Das Interrupt Subsystem.

Das Interrupt Subsystem von OO/MPStubBS beinhaltet alle Funktionalität um Unterbrechungen von der Hardware anzunehmen und diese abzuarbeiten. In späteren Übungen werden dann die Interrupts mit der Anwendungs-aktivierten Kernausführung (Systemaufrufe) synchronisiert. Der Eintrittspunkt für das Interrupt Subsystem ist die Funktion guardian.

Dokumentation der Funktionen

◆ guardian()

void guardian ( uint32_t  vector,
irq_context context 
)

Low-Level Interrupt-Behandlung.

Zentrale Unterbrechungsbehandlungsroutine des Systems. Diese Funktion wird von dem Assembler Teil der Unterbrechungsbehandlung aufgerufen. Beim Betreten der Funktion sind die Unterbrechungen auf dieser CPU gesperrt.

Parameter
vectorgibt die Nummer des aufgetretenen Interrupts an.
contextbeinhaltet einen Pointer auf den eigenen Stack, über den auf den Unterbrechungskontext zugegriffen werden kann.
Noch zu erledigen:
Methode implementieren