next up previous
Next: Koroutinen in Modula-2 Up: Koroutinen Previous: Koroutinen

Einführung

Koroutinen erlauben die Nebenläufigkeit von mehreren Programmteilen auf sehr einfache Weise und wurden als Sprachmittel zuerst 1963 von Conway und Erdwinn eingeführt. Conway entwickelte damals einen Cobol-Übersetzer, dessen einzelne Module als Koroutinen liefen, die als Produzenten und Konsumenten über insgesamt neun Kanäle miteinander verbunden waren. Je nach der Größe des vorhandenen Speichers konnte der Übersetzer vollständig auf einem Rechner laufen oder in mehrere Teile zerlegt werden.

Jede Koroutine hat ihren eigenen Stack, eine eigene aktuelle Position und einen eigenen Registersatz. Zu einem bestimmten Zeitpunkt ist immer nur eine Koroutine aktiv. Eine Koroutine kann jederzeit die Kontrolle einer anderen Koroutine übergeben. Hierbei wird zunächst der eigene Stand (aktuelle Position und die Register) gesichert und dann der Stand der anderen benannten Koroutine wieder restauriert. Der Wechsel von einer Koroutine zu einer anderen benötigt nur sehr wenige Maschineninstruktionen und ist damit kaum teurer als ein durchschnittlicher Prozeduraufruf.



Andreas Borchert
2/2/1998