nächste Seite: Interprozeßkommunikation
vorherige Seite: ProzeßkommunikationProzeßsynchronisation


Das UNIX-Prozeßkonzept

Es ist unter UNIX möglich, daß ein Prozeß weitere, zu ihm asynchron arbeitende, identische Prozesse initiiert. In der Regel werden allerdings nur solche Sohnprozesse benötigt, die ein Ergebnis erzeugen, auf die der Vaterprozeß wartet. Die Erzeugung eines solchen Prozesses wird in UNIX durch den Systemaufruf ,,fork`` realisiert, der bei gegebenem Vaterprozeß einen absolut identischen Sohnprozeß erzeugt. Beide Prozesse bekommen nun eine Rückmeldung: der Sohnprozeß erhält als PID eine 0 zurück, der Vaterprozeß als PID die Prozeßnummer des Sohnprozesses. Mit ,,wait`` kann nun der Vaterprozeß auf die Terminierung des Sohnprozesses warten.

Soll allerdings kein identischer Sohnprozeß erzeugt werden, so muß der Sohnprozeß nach dem fork-Aufruf durch ,,exec`` mit einem anderen Programm überlagert werden. Durch ,,exit`` endet ein Prozeß, und ein definierter Wert wird an den möglicherweise wartenden Vaterprozeß übergeben, womit dann eine einfache Art der Prozeßkommunikation und Prozeßsynchronisation erreicht wird.

Dieses Konzept hat den Vorteil, daß beliebige Prozeßflüsse modellierbar sind. Es führt allerdings auch zu kryptischem Code, insbesondere dann, wenn mittels ,,join`` zwei Prozesse zusammengefügt werden.



nächste Seite: Interprozeßkommunikation
vorherige Seite: ProzeßkommunikationProzeßsynchronisation


Thorsten Schlump
Tue Jun 27 23:03:15 MEST 2000