|
Ein unidirektionaler Kommunikationskanal verbindet
einen Produzenten, der in den Kanal schreibt, mit einem
Konsumenten, der aus dem Kanal liest.
| |
Beispiel: Pipeline unter UNIX
| |
Die Speicherkapazität des Kanals ist beschränkt,
d.h. der Produzent kann nicht beliebig viel in den
Kanal schreiben, ohne daß jemals etwas vom Konsumenten
gelesen wird.
| |
Bei Pipelines unter UNIX liegt die Speicherkapazität
typischerweise bei vier Kilobytes.
| |
Will der Konsument lesen, ohne daß etwas im Kanal
vorliegt, wird er schlafen gelegt, bis der Produzent
neue Eingaben generiert.
| |
Umgekehrt wird der Produzent schlafen gelegt, wenn
er den bereits vollständig gefüllten Kanal weiter füllen
möchte.
| |
Wenn der Produzent die Verbindung schließt, kann der
Konsument noch den bestehenden Inhalt des Kanals auslesen
und beobachtet dann ein Ende der Eingabe.
| |
Wenn der Konsument die Verbindung schließt, erfährt
dies der Produzent über Fehler beim Schreiben.
|
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |