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