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

Das Interrupt Subsystem. Mehr ...

Namensbereiche

 Guard
 Synchronisation des BS-Kerns mit Unterbrechungen.
 
 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 Struktur IOAPIC::RedirectionTableEntry ist Bitfelder, das die einzelnen Einstellungen eines Eintrages zugänglich macht.
 
 LAPIC
 Abstraktion des in der CPU integrierten local APICs.
 
 Plugbox
 Abstraktion einer Interruptvektortabelle.
 

Klassen

class  Gate
 Klasse von Objekten, die in der Lage sind, Unterbrechungen zu behandeln. Mehr ...
 
class  Secure
 Die Klasse Secure dient dem bequemen Schutz kritischer Abschnitte. 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.