• 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
  • 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
                    • Aufgabe 7: Anwendung
                      • Assembler Crashkurs
                        • C++ Crashkurs
                          • Entwicklungsumgebung
                            • FAQ
                              • Ruhmeshalle
                              • Evaluation

                              Aufgabe 7: Anwendung

                              Static Public Member Functions | List of all members
                              Bellringer Class Reference

                              Manages and activates time-triggered activities. More...

                              #include <sync/bellringer.h>

                              Static Public Member Functions

                              static void check ()
                               Checks whether there are bells to be rung. More...
                               
                              static void job (Bell *bell, unsigned int ms)
                               Passes a bell to the bellringer to be rung after ms milliseconds. More...
                               
                              static void cancel (Bell *bell)
                               Cancel ticking & ringing a bell. More...
                               
                              static unsigned int residual (Bell *bell)
                               Returns the remaining time until bell will ring. More...
                               
                              static bool bellPending ()
                               Checks whether there are enqueued bells. More...
                               

                              Detailed Description

                              Manages and activates time-triggered activities.

                              The Bellringer is regularly activated and checks whether any of the bells should ring. The bells are stored in a Queue<Bell> that is managed by the Bellringer. A clever implementation avoids iterating through the whole list for every iteration by keeping the bells sorted and storing delta times. This approach leads to a complexity of O(1) for the method called by the timer interrupt in case no bells need to be rung.

                              Member Function Documentation

                              void Bellringer::check ( )
                              static

                              Checks whether there are bells to be rung.

                              Every call to check elapses a tick. Once such a tick reduces a bells remaining time to zero, the bell will be rung.

                              void Bellringer::job ( Bell *  bell,
                              unsigned int  ms 
                              )
                              static

                              Passes a bell to the bellringer to be rung after ms milliseconds.

                              Parameters
                              bellBell that should be rung after ms milliseconds
                              msnumber of milliseconds that should be waited before ringing the bell
                              void Bellringer::cancel ( Bell *  bell)
                              static

                              Cancel ticking & ringing a bell.

                              Parameters
                              bellBell that should not be rung.
                              unsigned int Bellringer::residual ( Bell *  bell)
                              static

                              Returns the remaining time until bell will ring.

                              Parameters
                              bellThe bell for which the remaining time should be returned
                              Returns
                              Remaining time in milliseconds
                              Optional:
                              Implement Method
                              bool Bellringer::bellPending ( )
                              static

                              Checks whether there are enqueued bells.

                              Returns
                              true if there are enqueued bells, false otherwise

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

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