• 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

    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