• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssystemtechnik
    • Vorlesung
      • Folien
      • Glossar
    • Übung
      • Aufgaben
      • Dokumentation
        • Blog
          • Entwicklungsumgebung
            • Assembler Crashkurs
              • C++ Crashkurs
                • 🔗 Testrechnerverwaltung
                • Kontakt
              • Evaluation

              Dokumentation

              Public Member Functions | List of all members
              Semaphore Class Reference

              Semaphore used for synchronization of threads. More...

              #include <sync/semaphore.h>

              + Inheritance diagram for Semaphore:
              [legend]
              + Collaboration diagram for Semaphore:
              [legend]

              Public Member Functions

               Semaphore (unsigned c=0)
               Constructor; initialized the counter with provided value c More...
               
              void p ()
               Wait for access to the critical area. More...
               
              void v ()
               Leave the critical area. More...
               
              - Public Member Functions inherited from Waitingroom
               Waitingroom ()
               Constructor. More...
               
              virtual ~Waitingroom ()
               Destructor. More...
               
              virtual void remove (Thread *customer)
               Remove a given thread prematurely from the Waitingroom.
               
              - Public Member Functions inherited from Queue< Thread >
               Queue ()
               Default constructor; initialized the queue as empty.
               
              void enqueue (Thread *item)
               Enqueues the provided item at the end of the queue. More...
               
              Thread * dequeue ()
               Removes the first element in the queue and returns it. More...
               
              Iterator begin ()
               
              Iterator end ()
               
              Thread * remove (Thread *item, bool(*cmp)(Thread *, Thread *)=[](Thread *a, Thread *b) {return a==b;})
               Removes and returns a single element from the queue. More...
               
              void insertFirst (Thread *item)
               Adds item to the beginning of the queue. More...
               
              void insertAfter (Thread *old_item, Thread *new_item)
               Inserts the element new_item directly after old_item. More...
               
              Thread * first ()
               Returns the first element in the queue without removing it. More...
               
              Thread * next (Thread *o)
               Returns the next element in the queue for a given element.
               

              Detailed Description

              Semaphore used for synchronization of threads.

              The class Semaphore implements the concept of counting semaphores. The waiting list is provided by the base class Waitingroom.

              Constructor & Destructor Documentation

              Semaphore::Semaphore ( unsigned  c = 0)
              inlineexplicit

              Constructor; initialized the counter with provided value c

              Parameters
              cInitial counter value

              Member Function Documentation

              void Semaphore::p ( )

              Wait for access to the critical area.

              Enter/Wait operation: If the counter is greater than 0, then it is decremented by one. Otherwise the calling thread will be enqueued into the Waitingroom and marked as blocked.

              void Semaphore::v ( )

              Leave the critical area.

              Leave operation: If there are threads in the Waitingroom, wake the first one; otherwise increment the counter by one.


              The documentation for this class was generated from the following files:
              • sync/semaphore.h
              • sync/semaphore.cc
              Friedrich-Alexander-Universität
              Erlangen-Nürnberg

              Schlossplatz 4
              91054 Erlangen
              • Impressum
              • Datenschutz
              • Barrierefreiheit
              • Facebook
              • RSS Feed
              • Xing
              Nach oben