OOStuBS/MPStuBS
CPU Synchronisation

Im Synchronisationsmodul sind die Funktionalitäten implementiert, die benötigt werden um mehrere Prozessoren und Aktivitäten miteinander in Einklang zu bringen. Dies bezieht sich insbesondere darauf, wenn mehrere Teilnehmer auf eine Ressource zugreifen wollen. Dabei können die Teilnehmer auf der gleichen CPU oder unterschiedlichen Prozessoren laufen. Mehr ...

Klassen

class  Spinlock
 Mit Hilfe eines Spinlocks kann man Codeabschnitte serialisieren, die echt nebenläufig auf mehreren CPUs laufen. Mehr ...
 

Funktionen

static void CPU::enable_int ()
 Erlauben von (Hardware-)Interrupts. Mehr ...
 
static bool CPU::disable_int ()
 Interrupts werden ignoriert/verboten. Mehr ...
 

Ausführliche Beschreibung

Im Synchronisationsmodul sind die Funktionalitäten implementiert, die benötigt werden um mehrere Prozessoren und Aktivitäten miteinander in Einklang zu bringen. Dies bezieht sich insbesondere darauf, wenn mehrere Teilnehmer auf eine Ressource zugreifen wollen. Dabei können die Teilnehmer auf der gleichen CPU oder unterschiedlichen Prozessoren laufen.

Dokumentation der Funktionen

◆ disable_int()

static bool CPU::disable_int ( )
inlinestatic

Interrupts werden ignoriert/verboten.

Verhindert eine Reaktion auf Unterbrechungen, indem die Assembleranweisung cli ausgeführt wird. Der Rückgabewert gibt an ob Unterbrechungen schon gesperrt waren.

Rückgabe
true wenn die Unterbrechungen zum Zeitpunkt des Aufrufs frei waren, false wenn sie schon gesperrt waren.

◆ enable_int()

static void CPU::enable_int ( )
inlinestatic

Erlauben von (Hardware-)Interrupts.

Lässt die Unterbrechungsbehandlung zu, indem die Assembleranweisung sti ausgeführt wird.