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
    - Videos
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Module
    - Mailingliste
    - 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 2012/13  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 7

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

#include <semaphore.h>

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

Ö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 ()
 Warten auf das Freiwerden eines kritischen Abschnitts.
void v ()
 Freigeben des kritischen Abschnitts.
void signal ()
 Freigeben des kritischen Abschnitts.
- Öffentliche Methoden geerbt von Waitingroom
virtual ~Waitingroom ()
 Destruktor.
virtual void remove (Customer *customer)
 Mit dieser Methode kann der angegebene Prozess customer vorzeitig aus dem Wartezimmer entfernt werden.
- Öffentliche Methoden geerbt von Queue
 Queue ()
 Der Konstruktor initialisiert die Liste als leere Liste.
void enqueue (Chain *item)
 Das Listenelement item wird an das Ende der Liste angefügt.
Chaindequeue ()
 Liefert das erste Element der Liste und entfernt es gleichzeitig aus dieser.
bool remove (Chain *item)
 Mit dieser Methode kann das angegebene Element item aus der Liste entfernt werden, unabhängig von seiner Position dort.

Weitere Geerbte Elemente

- Geschützte Attribute geerbt von Queue
Chainhead
Chain ** tail

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
cInitaler 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::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.

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


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2013-01-31 15:49   BO, DL