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

                        Aufgabe 5: Zeitscheiben

                        Public Member Functions | List of all members
                        Watch Class Reference

                        The Watch device deals with timer interrupts. More...

                        #include <device/watch.h>

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

                        Public Member Functions

                        bool windup (uint32_t us)
                         Windup / initialize. More...
                         
                        bool prologue () override
                         Prologue of timer interrupts. More...
                         
                        void epilogue () override
                         Epilogue of timer interrupts. More...
                         
                        uint32_t interval () const
                         Retrieve the interrupt interval. More...
                         
                        void activate () const
                         Activate the timer on this core. More...
                         
                        - Public Member Functions inherited from Gate
                         Gate ()
                         Constructor.
                         
                        virtual ~Gate ()
                         Destructor. More...
                         
                        virtual bool prologue ()=0
                         Device-specific interrupt handling routine that is executed immediately after the interrupt occurs (asynchronously). More...
                         
                        virtual void epilogue ()
                         Possibly delayed, synchronously executed Device-specific interrupt handling routine. More...
                         

                        Detailed Description

                        The Watch device deals with timer interrupts.

                        Handles LAPIC::Timer interrupts, therefore managing the time slices and triggering a thread switch if necessary.

                        Member Function Documentation

                        bool Watch::windup ( uint32_t  us)

                        Windup / initialize.

                        Assigns itself to the Plugbox and initializes the LAPIC::Timer in such a way that regular interrupts are triggered approx. every us microseconds when Watch::activate() is called. For this purpose, a suitable timer divisor is determined based on the timer frequency determined with LAPIC::Timer::ticks(). This timer divisor has to be as small as possible, but large enough to prevent the 32bit counter from overflowing.

                        Parameters
                        usDesired interrupt interval in microseconds.
                        Returns
                        Indicates if the interval could be set.
                        Todo:
                        Implement Method
                        bool Watch::prologue ( )
                        overridevirtual

                        Prologue of timer interrupts.

                        Returns
                        true if the Watch::epilogue should be executed.
                        Todo:
                        Implement Method

                        Implements Gate.

                        void Watch::epilogue ( )
                        overridevirtual

                        Epilogue of timer interrupts.

                        Triggers the thread switch.

                        Todo:
                        Implement Method

                        Reimplemented from Gate.

                        uint32_t Watch::interval ( ) const

                        Retrieve the interrupt interval.

                        Returns
                        Interval in microseconds
                        Todo:
                        Implement method
                        void Watch::activate ( ) const

                        Activate the timer on this core.

                        The core local timer starts with the interval previously configured in windup(). To get timer interrupts on all cores, this method must be called once per core (however, it is sufficient to call windup only once since the APIC-Bus frequency is the same on each core).

                        Todo:
                        Implement method

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

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