• 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
                • 🔗 Adora-Belle (Helpdesk)
                • Kontakt
              • Evaluation

              Dokumentation

              Public Member Functions | List of all members
              GuardedSemaphore Class Reference

              Guarded interface to Semaphore objects used by user applications. More...

              #include <syscall/guarded_semaphore.h>

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

              Public Member Functions

               GuardedSemaphore (unsigned c)
               The constructor passes the parameters to the base-class constructor. More...
               
              void p ()
               Wait for access to the critical area. More...
               
              void v ()
               Leave the critical area. More...
               
              - Public Member Functions inherited from Semaphore
               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. More...
               
              - 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

              Guarded interface to Semaphore objects used by user applications.

              Implements the system call interface for class Semaphore. All methods provided by this class are wrappers for the respective method from the base class, which provide additional synchronization by using the class Guarded.

              Constructor & Destructor Documentation

              GuardedSemaphore::GuardedSemaphore ( unsigned  c)
              inlineexplicit

              The constructor passes the parameters to the base-class constructor.

              Member Function Documentation

              void GuardedSemaphore::p ( )
              inline

              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.

              Note
              This method is equal to the correspondent method in base class Semaphore, with the only difference that the call will be protected by a Guarded object.
              void GuardedSemaphore::v ( )
              inline

              Leave the critical area.

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

              Note
              This method is equal to the correspondent method in base class Semaphore, with the only difference that the call will be protected by a Guarded object.

              The documentation for this class was generated from the following file:
              • syscall/guarded_semaphore.h
              Friedrich-Alexander-Universität
              Erlangen-Nürnberg

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