Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultńt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * Aufgabe 1
          Dokumentation
       * Aufgabe 2
          Dokumentation
       * Aufgabe 3
          Dokumentation
       * Aufgabe 4
          Dokumentation
       * Aufgabe 5
          Dokumentation
       * Aufgabe 6
          Dokumentation
       * Aufgabe 7
          Dokumentation
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2009/10  >  Betriebssysteme  >  ├ťbungen  >  Aufgaben  >  Aufgabe 7

Spinlock Klassenreferenz

Mit Hilfe eines Spinlocks kann man Codeabschnitte serialisieren die echt nebenl├Ąufig auf mehreren CPUs laufen. Mehr ...

#include <spinlock.h>

Aufstellung aller Elemente

├ľffentliche Methoden

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


Ausf├╝hrliche Beschreibung

Mit Hilfe eines Spinlocks kann man Codeabschnitte serialisieren die echt nebenl├Ąufig auf mehreren CPUs laufen.

Die Synchronisation l├Ąuft dabei ├╝ber eine Sperrvariable. Sobald jemand den kritischen Abschnitt betreten will, setzt er die Sperrvariable. Verl├Ąsst er den kritischen Abschnitt, so setzt er sie wieder zur├╝ck. Ist die Sperrvariable jedoch schon gesetzt, dann wartet er aktiv darauf, dass sie der Besitzer des kritischen Abschnittes beim Verlassen wieder zur├╝cksetzt.

Zur Implementierung k├Ânnen die beiden GCC-Intrinsics __sync_lock_test_and_set(unsigned int* lock_status, unsigned int value) und __sync_lock_release(unsigned int* lock_status) verwendet werden. Diese werden vom Compiler in die architekturspezifischen atomaren Operationen ├╝bersetzt.

Eintrag im GCC Manual ├╝ber Atomic Builtins


Die Dokumentation f├╝r diese Klasse wurde erzeugt aufgrund der Datei:
  Impressum   Datenschutz Stand: 2010-07-19 12:37   BO, DL