Der Thread ist das Objekt der Ablaufplanung.
Mehr ...
#include <thread.h>
Der Thread ist das Objekt der Ablaufplanung.
◆ Thread()
Thread::Thread |
( |
void * |
tos | ) |
|
Konstruktor.
Initialisiert den Kontext mit Hilfe von toc_settle
- Parameter
-
tos | Top of Stack, also die höchste Adresse des Speicherbereiches, der als Stack für diesen Thread fungieren soll. |
◆ action()
virtual void Thread::action |
( |
| ) |
|
|
pure virtual |
◆ dying()
Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt.
◆ go()
Aktiviert den ersten Thread auf einem Prozessor.
Durch den Aufruf von Thread::go() wird der erste Thread auf dem jeweiligen Prozessor gestartet. Alle weiteren Threadwechsel sollen dann mit Hilfe der Methode Thread::resume() ausgeführt werden.
◆ reset_kill_flag()
void Thread::reset_kill_flag |
( |
| ) |
|
|
inline |
Zurücksetzen des Kill-Flags. Thread ist damit gestorben. Wird nur für MPStuBS benötigt.
◆ resume()
void Thread::resume |
( |
Thread * |
next | ) |
|
Wechsel von dem aktuell laufenden Thread zum nächsten.
Die aktuelle Belegung der nicht-flüchtigen Register wird in dem toc Element gesichert und durch die Werte von next (dem toc Element des nächsten Threads) ersetzt.
- Parameter
-
next | Zeiger auf den nächsten Thread, der laufen soll. |
◆ set_kill_flag()
void Thread::set_kill_flag |
( |
| ) |
|
|
inline |
Setzen des Kill-Flags. Thread wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt.
◆ waiting_in() [1/2]
Hiermit kann abgefragt werden, in welchem Waitingroom Objekt der Thread eingetragen ist.
Ein Rückgabewert von 0 soll bedeuten, dass der Thread auf überhaupt kein Ereignis wartet, also entweder der aktuell laufende Thread ist, auf der Ready-Liste des Schedulers steht, bereits terminiert ist oder noch gar nicht beim Scheduler angemeldet wurde.
- Rückgabe
- Zeiger auf das Waitingroom, in dem dieser Thread wartet, oder 0.
◆ waiting_in() [2/2]
Mit dieser Methode wird im Thread vermerkt, dass dieser derzeit im Waitingroom w auf ein Ereignis wartet.
- Parameter
-
Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: