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

Übungen zu BS - Aufgaben (WS 2013/14)

Interruptbehandlung für Timerinterrupts. Mehr ...

#include <watch.h>

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

Öffentliche Methoden

 Watch (int us)
 Konstruktor.
void windup ()
 Uhr "aufziehen".
bool prologue ()
 Enthält den Prolog der Unterbrechungsbehandlung.
void epilogue ()
 In dieser Methode wird der Threadwechsel ausgelöst.
- Öffentliche Methoden geerbt von Gate
 Gate ()
 Konstruktor.
virtual ~Gate ()
 Destruktor.
bool acquire ()
 Setzt ein Flag um zu markieren, dass sich das Objekt gerade in einer Epilog-Warteschlange befindet.
void release ()
 Gibt das Flag das in acquire() geholt wurde wieder frei.
- Öffentliche Methoden geerbt von PIT
 PIT (int us)
 Konstruktor.
int interval ()
 Gibt an, welches Unterbrechungsintervall eingestellt wurde.
void interval (int us)
 Stellt das Unterbrechungsintervall auf us neu ein.

Weitere Geerbte Elemente

- Öffentliche Attribute geerbt von Chain< Gate >
Gatenext
 next gibt das nächste Element der Liste an.

Ausführliche Beschreibung

Interruptbehandlung für Timerinterrupts.

Die Klasse Watch sorgt für die Behandlung der Zeitgeberunterbrechungen, indem sie eine Zeitscheibe verwaltet und gegebenenfalls einen Threadwechsel auslöst.

Beschreibung der Konstruktoren und Destruktoren

Watch::Watch ( int  us)
inline

Konstruktor.

Im Konstruktor wird der Timer so initialisiert, dass er in Abständen von ca. us Mikrosekunden regelmäßig Unterbrechungen auslöst.

Parameter
usGewünschtes Unterbrechungsintervall in Mikrosekunden.

Dokumentation der Elementfunktionen

bool Watch::prologue ( )
virtual

Enthält den Prolog der Unterbrechungsbehandlung.

Rückgabe
Gibt true zurück, falls ein Epilog notwendig ist, ansonsten false.

Implementiert Gate.

void Watch::windup ( )

Uhr "aufziehen".

Dazu muss sich das Watch Objekt bei der Plugbox plugbox anmelden und mit Hilfe des globalen IOAPIC Objekts ioapic der Timerunterbrechung einen Interruptvektor zuweisen und dann die Unterbrechungen des Timer Bausteins zulassen.


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