Prozesssynchronisation

Prozesssynchronisation

In der Programmierung versteht man unter Prozesssynchronisation (oder kurz einfach Synchronisation) die Koordinierung des zeitlichen Ablaufs mehrerer nebenläufiger Prozesse bzw. Threads. Dabei ist es unerheblich, ob es sich um Threads in einem Programm, um Programme auf einem Computer oder um Prozesse in einem Verteilten System handelt, die über ein Netzwerk kommunizieren.

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 Signale, insbesondere das Abbrechen von Prozessen oder das Warten darauf, dass sie terminieren.

Die Synchronisation der Prozesse besteht nun darin, dass im Allgemeinen ein Prozess auf ein Ereignis warten muss, das von einem anderen ausgelöst wird. Es ist Aufgabe des Schedulers, die sich daraus ergebenden kausalen Abhängigkeiten so umzusetzen, dass ein Prozess immer nur dann Rechenzeit bekommt, wenn alle dafür notwendigen Bedingungen erfüllt sind. Konkret wird dies meist durch die klassischen Kontrollmechanismen wie Locks, Semaphore und Monitore gelöst.

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


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Gegenseitiger Ausschluss — Der Begriff Wechselseitiger Ausschluss bzw. Mutex (Abk. für engl. mutual exclusion, auf deutsch etwa wechselseitiger Ausschluss) bezeichnet eine Gruppe von Verfahren, mit denen das Problem des kritischen Abschnitts gelöst wird. Mutex Verfahren… …   Deutsch Wikipedia

  • Wechselseitiger Ausschluss — Der Begriff Wechselseitiger Ausschluss bzw. Mutex (Abk. für engl. mutual exclusion, auf deutsch etwa wechselseitiger Ausschluss) bezeichnet eine Gruppe von Verfahren, mit denen das Problem des kritischen Abschnitts gelöst wird. Mutex Verfahren… …   Deutsch Wikipedia

  • Busy-Waiting — Aktives Warten auch busy waiting genannt bezeichnet eine Aktivität eines Programms, mit der die Zeit bis zur Erfüllung einer Bedingung aktiv durch Ausführung von Anweisungen, welche den Zustand des Programms nicht verändern, überbrückt wird.… …   Deutsch Wikipedia

  • Busy Waiting — Aktives Warten auch busy waiting genannt bezeichnet eine Aktivität eines Programms, mit der die Zeit bis zur Erfüllung einer Bedingung aktiv durch Ausführung von Anweisungen, welche den Zustand des Programms nicht verändern, überbrückt wird.… …   Deutsch Wikipedia

  • Interprozeßkommunikation — Unter Interprozesskommunikation (englisch inter process communication, IPC) versteht man Methoden zum Informationsaustausch, informatisch gesprochen Datenübertragung, von nebenläufigen Prozessen oder Threads. Im engeren Sinne versteht man unter… …   Deutsch Wikipedia

  • Producer-Consumer-Problem — Das Erzeuger Verbraucher Problem ist eine klassische, abstrakt formulierte Problemstellung der Prozesssynchronisation, welche eine Regelung der Zugriffsreihenfolge auf eine Datenstruktur durch elementerzeugende (schreibende) und… …   Deutsch Wikipedia

  • Semaphore (Programmierung) — Ein Semaphor ist eine Datenstruktur mit zwei speziellen Nutzungsoperationen. Semaphore werden bei der Programmierung zur Prozesssynchronisation eingesetzt, also zur Lösung von Aufgaben, bei denen die parallele Ausführung mehrerer Prozesse/Threads …   Deutsch Wikipedia

  • Gerätesynchronisation — Synchronisation der Zeit („Uhrenvergleich“) Synchronisation (von griechisch sýn, „zusammen“ und chrónos, „Zeit“, wörtlich etwa „Herstellen von Gleichlauf“), gleichwertig auch Synchronisierung, bezeichnet das zeitliche Aufeinander Abstimmen von… …   Deutsch Wikipedia

  • Mutex — Der Begriff Wechselseitiger Ausschluss bzw. Mutex (Abk. für engl. mutual exclusion) bezeichnet eine Gruppe von Verfahren, mit denen das Problem des kritischen Abschnitts gelöst wird. Mutex Verfahren verhindern, dass nebenläufige Prozesse bzw.… …   Deutsch Wikipedia

  • Semaphor (Informatik) — Ein Semaphor ist eine Datenstruktur, die aus einer Ganzzahl und den Nutzungsoperationen „Reservieren/Probieren“ und „Freigeben“ besteht. Sie dient der Verwaltung beschränkter (zählbarer) Ressourcen, auf die mehrere Prozesse oder Threads zugreifen …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”