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

Mit Hilfe eines Ticketlocks kann man Codeabschnitte serialisieren, die echt nebenläufig auf mehreren CPUs laufen. Mehr ...

#include <machine/ticketlock.h>

Öffentliche Methoden

 Ticketlock ()
 Konstruktor; Initialisierung des Ticketlocks. Mehr ...
 
void lock ()
 Betritt den gesperrten Abschnitt. Ist dieser besetzt, so wird solange aktiv gewartet, bis er betreten werden kann. Mehr ...
 
void unlock ()
 Gibt den gesperrten Abschnitt wieder frei. Mehr ...
 

Ausführliche Beschreibung

Mit Hilfe eines Ticketlocks kann man Codeabschnitte serialisieren, die echt nebenläufig auf mehreren CPUs laufen.

Die Synchronisation läuft dabei über eine Sperr- und eine Ticket-Variable. Sobald jemand den kritischen Abschnitt betreten will, holt er sich sein Ticket durch atomares Erhöhen der Ticket-Variable und wartet darauf, dass die Sperr-Variable seinen Ticket-Zählerstand erreicht. Verlässt er den kritischen Abschnitt, so erhöht er die Sperr-Variable und der nächste ist an der Reihe.

Eintrag im GCC Manual über Atomic Builtins

Beschreibung der Konstruktoren und Destruktoren

◆ Ticketlock()

Ticketlock::Ticketlock ( )
inline

Konstruktor; Initialisierung des Ticketlocks.

Optional:
Konstruktor vervollständigen

Dokumentation der Elementfunktionen

◆ lock()

void Ticketlock::lock ( )
inline

Betritt den gesperrten Abschnitt. Ist dieser besetzt, so wird solange aktiv gewartet, bis er betreten werden kann.

Siehe auch
CPU::Pause
Optional:
Methode implementieren

◆ unlock()

void Ticketlock::unlock ( )
inline

Gibt den gesperrten Abschnitt wieder frei.

Optional:
Methode implementieren

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