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

Der Dispatcher lastet Threads ein und setzt damit die Entscheidungen der Ablaufplanung durch. Mehr ...

#include <thread/dispatcher.h>

Klassendiagramm für Dispatcher:
Zusammengehörigkeiten von Dispatcher:

Öffentliche Methoden

 Dispatcher ()
 Konstruktor. Mehr ...
 
Threadactive ()
 Hiermit kann abgefragt werden, welche Koroutine gerade im Besitz des aktuellen Prozessors ist. Mehr ...
 
void go (Thread *first)
 Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet. Mehr ...
 
void dispatch (Thread *next)
 Diese Methode setzt den Life-Pointer des aktuellen Prozessors auf next und führt einen Koroutinenwechsel vom alten zum neuen Life-Pointer durch. Mehr ...
 

Geschützte Methoden

void setActive (Thread *c)
 

Geschützte Attribute

Threadlife [CPU_MAX]
 

Ausführliche Beschreibung

Der Dispatcher lastet Threads ein und setzt damit die Entscheidungen der Ablaufplanung durch.

Zu beachten
Der Dispatcher verwaltet den Life-Pointer, der die jeweils aktive Koroutine angibt und führt die eigentlichen Prozesswechsel durch. In der Uniprozessorvariante wird nur ein einziger Life-Pointer benötigt, da lediglich ein Prozess auf einmal aktiv sein kann. Für die Mehrprozessorvariante wird hingegen für jede CPU ein eigener Life-Pointer benötigt.

Beschreibung der Konstruktoren und Destruktoren

◆ Dispatcher()

Dispatcher::Dispatcher ( )
inline

Konstruktor.

Der Konstruktor initialisiert den oder die Life-Pointer mit Null, um anzuzeigen, dass auf der jeweiligen CPU noch keine Koroutine bekannt ist.

Dokumentation der Elementfunktionen

◆ active()

Thread* Dispatcher::active ( )
inline

Hiermit kann abgefragt werden, welche Koroutine gerade im Besitz des aktuellen Prozessors ist.

◆ dispatch()

void Dispatcher::dispatch ( Thread next)

Diese Methode setzt den Life-Pointer des aktuellen Prozessors auf next und führt einen Koroutinenwechsel vom alten zum neuen Life-Pointer durch.

Parameter
nextNächste auszuführende Koroutine.

◆ go()

void Dispatcher::go ( Thread first)

Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet.

Parameter
firstErste auf dem aktuellen Prozessor zu startende Koroutine im System.

Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: