Interprozesskommunikation (IPC)


Einführung

Normalerweise haben Prozesse voneinander getrennte Daten-Bereiche. Die Kommunikation zwischen Prozesses ist etwas umstänlich, da ein Prozeß gerade durch seine Eigenständigkeit von anderen Prozessen hervorsticht.

Es gibt mehrere Möglichkeiten, IPC zu realisieren:

Eine Ausführliche Behandlung der IPC befindet sich in man perlipc. Sie können auch die Kapitel über Signale, Prozesse und Client/Server (Sockets) konsultieren.

Signale

Signale sind nur eine sehr eingeschränkte und unzuverlässige Form der IPC. Sie kann, wie der Name es auch andeutet, nur für primitivste Signalisierungszwecke eingesetzt werden.

Gemeinsame Datei

Eine häufig benutzte Methode: Ein Prozess schreibt etwas in eine Datei, und ein anderer Prozeß liest aus dieser Datei.

Beim gemeinsamen Zugriff auf eine Datei kann eine race condition entstehen: Es werden also Sperren benötigt: Siehe hierzu flock() (lokale Sperren) und fcntl() (NFS-weite Sperren).

Pipes

Es gibt zwei sorten von Pipes:

Nicht unerwähnt bleiben soll, daß Sie Pipes von und zu Programmen mit der open() Funktion öffnen können. Siehe hierzu auch das I/O Kapitel, sowie unter man perlipc ( Using open() for IPC, Safe Pipe Opens und Bidirectional Communication).

Mehr darüber mündlich im Kurs.

SysV IPC

UNIX System V hat folgende IPC-Methoden eingeführt: Alle diese Libraries sind auch in Perl vorhanden (vorausgesetzt, Ihr System verfügte über diese Libraries als Perl konfiguriert und kompiliert wurde). Wer C's Version dieser Funktionen kannte, wird angenehm überrascht: Die Schnittstelle ist etwas einfacher geworden.

Eine Erläuterung der entsprechenden API finden Sie in man perlipc.

Sockets

Sockets werden im nächsten Kapitel behandelt.

Vorherige Seite, Nächste Seite, Index, Hauptindex.


Copyright © 1997/08/16 by Farid Hajji.