Zirkuläre Abhängigkeiten

Zirkuläre Abhängigkeiten

Eine zirkuläre Abhängigkeit (auch „wechselseitige Abhängigkeit“) kann überall dort auftreten, wo verschiedene Elemente voneinander abhängen, das können Softwarekomponenten oder Arbeitsschritte sein. Generell führen zyklische Abhängigkeiten oft zu Teufelskreisen oder Verklemmungen (deadlocks).

Softwareentwicklung

In der Softwareentwicklung liegt eine zirkuläre Abhängigkeit vor, wenn eine Komponente A von einer Komponente B abhängt (A→B) und Komponente B wiederum von Komponente A (B→A). Dabei muss die Abhängigkeit nicht direkt sein, sondern kann auch indirekt (über die reflexiv-transitive Hülle) gebildet werden, d. h. wenn z. B. A abhängig ist von B (A→B) und B abhängig ist von C (B→C) und C wiederum von A abhängig ist (C→A) so sind A und C zirkulär abhängig zueinander (A↔C).

Solche Abhängigkeiten können zu großen Problemen führen, wie das folgende Beispiel zeigt.

In der Programmiersprache C gibt es Includedateien (sie enden üblicherweise auf „.h“). Nun kann eine Includedatei weitere Includedateien beinhalten. Wenn Datei „A.h“ die Datei „B.h“ einbindet und die Datei „B.h“ die Datei „C.h“ einbindet ist noch alles in Ordnung. Falls nun die Datei „C.h“ die Datei „A.h“ einbindet, ist eine zirkuläre Abhängigkeit entstanden. Dem Compiler ist es unmöglich, dies zu kompilieren, da er „im Kreis rennt“.

Graphentheorie

In der Graphentheorie liegt eine zirkuläre Abhängigkeit genau dann vor wenn in einem gerichteten Graphen ein Zyklus vorliegt.

Arbeitsschritte

Ein weiteres (fiktives) Beispiel aus dem „täglichen Leben“ zeigt, wie zirkuläre Abhängigkeiten Prozesse blockieren können:

Um eine Aufenthaltserlaubnis zu bekommen, muss ein Ausländer einen Arbeitsplatz nachweisen. Damit er aber von einer Firma eingestellt wird, benötigt er einen gemeldeten Wohnsitz. Um aber vom Vermieter akzeptiert zu werden braucht er eine Aufenthaltserlaubnis. Damit schließt sich der Kreis. Solange die zirkuläre Abhängigkeit nicht durchbrochen wird, wird er in dem Land nicht dauerhaft leben können.


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

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

  • Zirkuläre Abhängigkeit — Eine zirkuläre Abhängigkeit (auch „wechselseitige Abhängigkeit“) kann überall dort auftreten, wo verschiedene Elemente voneinander abhängen, das können Softwarekomponenten oder Arbeitsschritte sein. Generell führen zyklische Abhängigkeiten oft zu …   Deutsch Wikipedia

  • 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… …   Deutsch Wikipedia

  • 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… …   Deutsch Wikipedia

  • Polaroidfilter — Polarisationsfilter für Kamera Objektiv Ein Polarisationsfilter (kurz auch Polfilter) ist ein Polarisator. Es lässt nur Licht einer bestimmten Schwingungsrichtung durch. Inhaltsverzeichnis 1 Wirkungsweise …   Deutsch Wikipedia

  • Polbrille — Polarisationsfilter für Kamera Objektiv Ein Polarisationsfilter (kurz auch Polfilter) ist ein Polarisator. Es lässt nur Licht einer bestimmten Schwingungsrichtung durch. Inhaltsverzeichnis 1 Wirkungsweise …   Deutsch Wikipedia

  • Polfilter — Polarisationsfilter für Kamera Objektiv Ein Polarisationsfilter (kurz auch Polfilter) ist ein Polarisator. Es lässt nur Licht einer bestimmten Schwingungsrichtung durch. Inhaltsverzeichnis 1 Wirkungsweise …   Deutsch Wikipedia

  • Polifilter — Polarisationsfilter für Kamera Objektiv Ein Polarisationsfilter (kurz auch Polfilter) ist ein Polarisator. Es lässt nur Licht einer bestimmten Schwingungsrichtung durch. Inhaltsverzeichnis 1 Wirkungsweise …   Deutsch Wikipedia

  • Dead Lock — Beispiel für einen Deadlock Deadlock oder Verklemmung bezeichnet in der Informatik einen Zustand, bei dem ein oder mehrere Prozesse auf Betriebsmittel warten, die dem Prozess selbst oder einem anderen beteiligten Prozess zugeteilt sind. Eine… …   Deutsch Wikipedia

  • Livelock — Beispiel für einen Deadlock Deadlock oder Verklemmung bezeichnet in der Informatik einen Zustand, bei dem ein oder mehrere Prozesse auf Betriebsmittel warten, die dem Prozess selbst oder einem anderen beteiligten Prozess zugeteilt sind. Eine… …   Deutsch Wikipedia

  • Verklemmung — Beispiel für einen Deadlock Deadlock oder Verklemmung bezeichnet in der Informatik einen Zustand, bei dem ein oder mehrere Prozesse auf Betriebsmittel warten, die dem Prozess selbst oder einem anderen beteiligten Prozess zugeteilt sind. Eine… …   Deutsch Wikipedia

Share the article and excerpts

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