Prozesssynchronisation
Der Zweck der Koordinierung ist zumeist einer der folgenden:
- Gemeinsamer Zugriff auf Daten. Dabei muss verhindert werden, dass durch gleichzeitigen Zugriff Inkonsistenzen in den Daten entstehen. Dies wird durch Mutex-Verfahren zum gegenseitigen Ausschluss realisiert.
- Gemeinsame Nutzung beschränkter Betriebsmittel wie zum Beispiel von Peripheriegeräten. Hierbei können ebenfalls Mutex-Verfahren eingesetzt werden, häufig werden aber komplexere Methoden des Schedulings benötigt.
- Übergabe von Daten bzw. Nachrichten von einem Prozess an einen Anderen, also Interprozesskommunikation.
- Steuerung von Unterprozessen durch Signalee, insbesondere das Abbrechen von Prozessen oder das Warten darauf, dass sie terminieren.
Die Abhängigkeiten zwischen den Prozessen lassen sich formal zum Beispiel durch ein Petri-Netz modellieren. Ein typisches Problem ist in diesem Zusammenhang, dass sich Prozesse verklemmen können, wenn sich zirkuläre Abhängigkeiten bilden - das wird zum Beispiel bei dem Problem der speisenden Philosophen deutlich. Ein anderes prototypisches Problem ist die Steuerung eines Producer/Consumer Systems.
Siehe auch: Paralleler Algorithmus, Nichtsequentielle Programmierung, Parallelisierung, Multithreading