Übungen zu BS - Dokumentation Aufgabe 5 (WS 2014/15)
Implementierung des Dispatchers. Mehr ...
#include <dispatch.h>


Öffentliche Methoden | |
Dispatcher () | |
Konstruktor. | |
Thread * | active () |
Hiermit kann abgefragt werden, welche Koroutine gerade im Besitz des aktuellen Prozessors ist. | |
void | go (Thread *first) |
Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet. | |
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. |
Geschützte Methoden | |
void | setActive (Thread *c) |
Geschützte Attribute | |
Thread * | life [CPU_MAX] |
Ausführliche Beschreibung
Implementierung des Dispatchers.
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
|
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
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
-
next Nächste auszuführende Koroutine.
void Dispatcher::go | ( | Thread * | first | ) |
Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet.
- Parameter
-
first Erste auf dem aktuellen Prozessor zu startende Koroutine im System.
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
- thread/dispatch.h
- thread/dispatch.cc