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 6

Semaphore Klassenreferenz

Semaphore werden zur Synchronisation von Threads verwendet. Mehr ...

#include <semaphore.h>

Klassendiagramm fĂŒr Semaphore:
Zusammengehörigkeiten von Semaphore:

Aufstellung aller Elemente

Öffentliche Methoden

 Semaphore (int c)
 Der Konstruktor initialisiert den SemaphorzĂ€hler mit dem angegebenen Wert c.
void p ()
 Warten auf das Freiwerden eines kritischen Abschnitts.
void wait ()
void v ()
 Freigeben des kritischen Abschnitts.
void signal ()


AusfĂŒhrliche Beschreibung

Semaphore werden zur Synchronisation von Threads verwendet.

Die Klasse Semaphore implementiert das Synchronisationskonzept des zÀhlenden Semaphors. Die benötigte Warteliste erbt sie dabei von ihrer Basisklasse Waitingroom.


Beschreibung der Konstruktoren und Destruktoren

Semaphore::Semaphore ( int  c  )  [inline]

Der Konstruktor initialisiert den SemaphorzÀhler mit dem angegebenen Wert c.

Parameter:
c Initaler ZĂ€hlerwert des Semaphors


Dokumentation der Elementfunktionen

void Semaphore::p (  ) 

Warten auf das Freiwerden eines kritischen Abschnitts.

Warteoperation: Sofern der SemaphorzĂ€hler grĂ¶ĂŸer als Null ist, wird er nur um eins erniedrigt. Anderenfalls wird der aktuell laufende Prozess (ein Customer Objekt) an die Warteliste angefĂŒgt und blockiert.

Erneute Implementation in Guarded_Semaphore.

void Semaphore::wait (  )  [inline]

Warten auf das Freiwerden eines kritischen Abschnitts.

Warteoperation: Sofern der SemaphorzĂ€hler grĂ¶ĂŸer als Null ist, wird er nur um eins erniedrigt. Anderenfalls wird der aktuell laufende Prozess (ein Customer Objekt) an die Warteliste angefĂŒgt und blockiert.

Erneute Implementation in Guarded_Semaphore.

void Semaphore::v (  ) 

Freigeben des kritischen Abschnitts.

Freigabeoperation: Wenn auf der Warteliste mindestens ein Customer eingetragen ist, wird der erste davon aufgeweckt. Anderenfalls wird der SemaphorzÀhler um eins erhöht.

Erneute Implementation in Guarded_Semaphore.

void Semaphore::signal (  )  [inline]

Freigeben des kritischen Abschnitts.

Freigabeoperation: Wenn auf der Warteliste mindestens ein Customer eingetragen ist, wird der erste davon aufgeweckt. Anderenfalls wird der SemaphorzÀhler um eins erhöht.

Erneute Implementation in Guarded_Semaphore.


Die Dokumentation fĂŒr diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2010-07-19 12:35   BO, DL