• 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 5: Zeitscheiben

                          Static Public Member Functions | List of all members
                          Dispatcher Class Reference
                          Multithreading

                          The dispatcher dispatches threads and, by that, puts the scheduler's decisions into action. More...

                          #include <thread/dispatcher.h>

                          + Inheritance diagram for Dispatcher:
                          [legend]

                          Static Public Member Functions

                          static Thread * active ()
                           Returns the thread currently running on the CPU core calling this method.
                           
                          static bool isActive (const Thread *thread, unsigned *cpu=nullptr)
                           Check if thread is currently active. More...
                           
                          static void go (Thread *first)
                           This method stores first as life pointer for this CPU core and triggers the execution of first thread. More...
                           
                          static void dispatch (Thread *next)
                           Updates the life pointer to next and issues a thread change from the old to the new life pointer. More...
                           

                          Detailed Description

                          The dispatcher dispatches threads and, by that, puts the scheduler's decisions into action.

                          The dispatcher manages the life pointer that refers to the currently active thread and performs the actual switching of processes. For single-core systems, a single life pointer is sufficient, as only a single thread can be active at any one time. On multi-core systems, every CPU core needs its own life pointer.

                          Member Function Documentation

                          static bool Dispatcher::isActive ( const Thread *  thread,
                          unsigned *  cpu = nullptr 
                          )
                          inlinestatic

                          Check if thread is currently active.

                          Parameters
                          threadPointer to the thread in question
                          cpuwill receive the core number if cpu pointer is not nullptr and the thread is currently active
                          Returns
                          true if currently running, false otherwise
                          Todo:
                          Implement method for kill IPI (in MPStuBS only)
                          void Dispatcher::go ( Thread *  first)
                          static

                          This method stores first as life pointer for this CPU core and triggers the execution of first thread.

                          Note
                          Only to be used for the first thread running on a CPU core.
                          Parameters
                          firstFirst thread to be executed on this CPU core.
                          void Dispatcher::dispatch ( Thread *  next)
                          static

                          Updates the life pointer to next and issues a thread change from the old to the new life pointer.

                          Parameters
                          nextNext thread to be executed.

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

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