* On Sun, 17 Feb 2002 at 18:32 +0100, Thorsten Haude wrote:
* Urs Schaffner
[02-02-17 18:06]: Am Sonntag, 17. Februar 2002 17.46 schrieb Thorsten Haude:
* Ralph Müller
[02-02-17 17:04]: Wenn sehr viele Daten von einem zum nächsten Programm übergeben werden dann müßte dem Kernel doch eigentlich gar nichts anderes übrig bleiben als mal kurz eine temporäre "Zwischendatei" anzulegen? Schließlich ist auch der größte Arbeitsspeicher irgendwann mal "aufgebraucht". Oder? Aber macht er das auch bei wenig Daten? Das ist nicht nötig, weil die Daten 'sofort' vom zweiten Prozess verbraucht werden. Pipes werden normalerweise auf ca. 4KB Grösse begrenzt. IIRC gibt es da sogar ein define in irgendeiner Header Datei. Die Grösse kann wahrscheinlich auch irgendwo in den Kernel Quellen festgelegt werden. Wenn nämlich der Daten verarbeitende(lesende) Prozess langsamer als der Produzierende(schreibende) ist, würde irgendwann der Speicher knapp. Würde es nicht reichen, den schreibenden Prozess zu blockieren?
Ich würde sagen, nachdem die Pipes in der Grösse begrenzt sind, wird der schreibende Prozeß solange blockiert, bis wieder was frei ist - interpretiere ich da falsch? -- Adalbert PGP welcome, request public key: mailto:adalbert+key@lopez.at