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 Ü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 ...
 
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.
Noch zu erledigen:
Methode erweitern