• 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
      • Embedded Systems Software
      • 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 2025/26
      • Systemprogrammierung 2
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
      • Projekt angewandte Systemsoftwaretechnik
      • Aktuelle Entwicklung in Verteilten und Objektorientierten Betriebssystemen (für Bachelor-/Masterarbeit)
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssysteme
    • Vorlesung
      • Folien
    • Übung
      • Seminar
      • Aufgaben
      • Aufgabe 0: C++ Streams
        • Aufgabe 1: Ein-/Ausgabe
          • Aufgabe 2: Unterbrechungen
            • Aufgabe 3: Pro-/Epilog
              • Aufgabe 4: Kontextwechsel
                • Aufgabe 5: Zeitscheiben
                  • Aufgabe 6: Synchronisation
                    • Assembler Crashkurs
                      • C++ Crashkurs
                        • Entwicklungsumgebung
                          • FAQ
                            • Ruhmeshalle

                          Aufgabe 6: Synchronisation

                          Public Member Functions | List of all members
                          Semaphore Class Reference
                          IPC Subsystem

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

                          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
                          Todo:
                          Implement Constructor

                          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.

                          Todo:
                          Implement Method
                          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.

                          Todo:
                          Implement Method

                          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