Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultńt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
    - Videos
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Module
    - Mailingliste
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * Aufgabe 1
          Dokumentation
       * Aufgabe 2
          Dokumentation
       * Aufgabe 3
          Dokumentation
       * Aufgabe 4
          Dokumentation
       * Aufgabe 5
          Dokumentation
       * Aufgabe 6
          Dokumentation
       * Aufgabe 7
          Dokumentation
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2011/12  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 7

Dispatcher Klassenreferenz

Implementierung des Dispatchers. Mehr ...

#include <dispatch.h>

Klassendiagramm f├╝r Dispatcher:
Zusammengeh├Ârigkeiten von Dispatcher:

Aufstellung aller Elemente

├ľffentliche Methoden

 Dispatcher ()
 Konstruktor.
Coroutineactive ()
 Hiermit kann abgefragt werden, welche Koroutine gerade im Besitz des aktuellen Prozessors ist.
void go (Coroutine &first)
 Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet.
void dispatch (Coroutine &next)
 Diese Methode setzt den Life-Pointer des aktuellen Prozessors auf next und f├╝hrt einen Koroutinenwechsel vom alten zum neuen Life-Pointer durch.


Ausf├╝hrliche Beschreibung

Implementierung des Dispatchers.

Der Dispatcher verwaltet den Life-Pointer, der die jeweils aktive Koroutine angibt und f├╝hrt die eigentlichen Prozesswechsel durch. In der Uniprozessorvariante wird nur ein einziger Life-Pointer ben├Âtigt, da lediglich ein Prozess auf einmal aktiv sein kann. F├╝r die Mehrprozessorvariante wird hingegen f├╝r jede CPU ein eigener Life-Pointer ben├Âtigt.


Beschreibung der Konstruktoren und Destruktoren

Dispatcher::Dispatcher (  )  [inline]

Konstruktor.

Der Konstruktor initialisiert den oder die Life-Pointer mit Null, um anzuzeigen, dass auf der jeweiligen CPU noch keine Koroutine bekannt ist.


Dokumentation der Elementfunktionen

void Dispatcher::go ( Coroutine first  ) 

Mit dieser Methode wird die Koroutine first im Life-Pointer des aktuellen Prozessores vermerkt und gestartet.

Parameter:
first Erste auf dem aktuellen Prozessor zu startende Koroutine im System.

void Dispatcher::dispatch ( Coroutine next  ) 

Diese Methode setzt den Life-Pointer des aktuellen Prozessors auf next und f├╝hrt einen Koroutinenwechsel vom alten zum neuen Life-Pointer durch.

Parameter:
next N├Ąchste auszuf├╝hrende Koroutine.


Die Dokumentation f├╝r diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2012-02-01 10:07   BO, DL