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

Der Thread ist das Objekt der Ablaufplanung. Mehr ...

#include <thread/thread.h>

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

Öffentliche Methoden

 Thread (void *tos)
 Konstruktor. Mehr ...
 
void go ()
 Aktiviert den ersten Thread auf einem Prozessor. Mehr ...
 
void resume (Thread *next)
 Wechsel von dem aktuell laufenden Thread zum nächsten. Mehr ...
 
virtual void action ()=0
 Methode, die als Thread ausgeführt werden soll. Mehr ...
 
void set_kill_flag ()
 Setzen des Kill-Flags. Thread wechselt in den Zustand sterbend. Wird nur für MPStuBS benötigt. Mehr ...
 
void reset_kill_flag ()
 Zurücksetzen des Kill-Flags. Thread ist damit gestorben. Wird nur für MPStuBS benötigt. Mehr ...
 
bool dying ()
 Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt. Mehr ...
 

Öffentliche Attribute

QueueLink< Threadqueue_link
 Verkettungszeiger für Scheduler und Waitingroom.
 

Ausführliche Beschreibung

Der Thread ist das Objekt der Ablaufplanung.

Beschreibung der Konstruktoren und Destruktoren

◆ Thread()

Thread::Thread ( void *  tos)

Konstruktor.

Initialisiert den Kontext mit Hilfe von toc_settle

Parameter
tosTop of Stack, also die höchste Adresse des Speicherbereiches, der als Stack für diesen Thread fungieren soll.
Noch zu erledigen:
Konstruktor implementieren

Dokumentation der Elementfunktionen

◆ action()

virtual void Thread::action ( )
pure virtual

Methode, die als Thread ausgeführt werden soll.

Abgeleitete Klassen können durch Überschreiben dieser Methode den Code angeben, der als Thread ausgeführt werden soll.

Implementiert in Application und KeyboardApplication.

◆ dying()

bool Thread::dying ( )
inline

Abfragen des Kill-Flags. Nachschauen, ob der Thread gerade stirbt. Wird nur für MPStuBS benötigt.

Noch zu erledigen:
Methode implementieren

◆ go()

void Thread::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.

Noch zu erledigen:
Methode implementieren

◆ 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.

Noch zu erledigen:
Methode implementieren

◆ 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
nextZeiger auf den nächsten Thread, der laufen soll.
Noch zu erledigen:
Methode implementieren

◆ 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.

Noch zu erledigen:
Methode implementieren

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