Prozessynchronisation

Prozessynchronisation

In der Programmierung meint man mit 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:

  • Peterson-Algorithmus — Der Peterson Algorithmus (nach Larry Peterson) ist eine vollständige Lösung des Problems des wechselseitigen Ausschlusses (Mutex) in der dezentralen Steuerung von Prozessen (Prozessynchronisation). Er gewährleistet, dass stets nur ein Prozess in… …   Deutsch Wikipedia

  • Algorithmus von Peterson — Der Peterson Algorithmus (nach Larry Peterson) ist eine vollständige Lösung des Problems des wechselseitigen Ausschlusses (Mutex) in der dezentralen Steuerung von Prozessen (Prozessynchronisation). Er gewährleistet, dass stets nur ein Prozess in… …   Deutsch Wikipedia

  • Sequenzdiagramm — Strukturdiagramme der UML Klassendiagramm Komponentendiagramm Kompositionsstrukturdiagramm Objektdiagramm Paketdiagramm Profildiagramm Verteilungsdiagramm Verhaltensdiagramme der UML …   Deutsch Wikipedia

Share the article and excerpts

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