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
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - 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 2009/10  >  Betriebssysteme  >  Übungen  >  Aufgaben  >  Aufgabe 5

thread/coroutine.h-Dateireferenz

Enthält die Klasse Coroutine und die Funktion kickoff. Mehr ...

#include "machine/toc.h"

Include-Abhängigkeitsdiagramm fßr coroutine.h:

Dieser Graph zeigt, welche Datei direkt oder indirekt diese Datei enthält:


Klassen

class  Coroutine
 Die Klasse Coroutine stellt die Abstraktion einer Koroutine dar. Mehr ...

Funktionen

void kickoff (Coroutine *object)
 Funktion zum Starten einer Koroutine.

AusfĂźhrliche Beschreibung

Enthält die Klasse Coroutine und die Funktion kickoff.


Dokumentation der Funktionen

void kickoff ( Coroutine object  ) 

Funktion zum Starten einer Koroutine.

Für die allererste Aktivierung einer Coroutine muss eine "Rücksprungadresse" zu einer Funktion bekannt sein, von der aus dann der Übergang von der C zur C++ Ebene erfolgen kann. Diese Funktion soll kickoff sein.

Aktivierung von kickoff Bei der Initialisierung einer Coroutine mit Hilfe der Funktion toc_settle() wird nicht nur die Struktur toc fĂźr den ersten Koroutinenwechsel vorbereitet, sondern auch die Adresse der Funktion kickoff als RĂźcksprungadresse auf den Stack gelegt. Bei dem ersten Koroutinenwechsel mit toc_switch wird daher an den Anfang von kickoff "zurĂźck"gesprungen, womit die AusfĂźhrung beginnt.

Diese Methode realisiert den Sprung von der C Ebene zur C++ Ebene, indem sie ganz einfach die Methode action() des als Parameter vorgefundenen Koroutinenobjektes object aufruft.

Hinweis Da diese Funktion nicht wirklich aufgerufen, sondern nur durch eine geschickte Initialisierung des Stacks der Koroutine angesprungen wird, darf sie nie terminieren. Anderenfalls wuerde ein sinnloser Wert als RĂźcksprungadresse interpretiert werden und der Rechner abstĂźrzen.

Parameter:
object Coroutine, die gestartet werden soll.

  Impressum   Datenschutz Stand: 2010-07-19 12:34   BO, DL