Livelock: Was ist, Beispiel, Unterschied zu Deadlock

Was ist Livelock?

A Livelock Dies ist eine Situation, in der eine Anfrage nach einer exklusiven Sperre wiederholt abgelehnt wird, da sich viele überlappende gemeinsame Sperren gegenseitig stören. Die Prozesse ändern ständig ihren Status, was sie zusätzlich daran hindert, die Aufgabe abzuschließen. Dies hindert sie zusätzlich daran, die Aufgabe zu erledigen.

Beispiele für Livelock

Beispiel 1:

Ein einfachstes Beispiel für Livelock wären zwei Personen, die sich in einem Korridor gegenüberstehen und beide zur Seite gehen, um den anderen passieren zu lassen. Am Ende bewegen sie sich von einer Seite zur anderen, ohne Fortschritte zu machen, da sie sich jeweils in die gleiche Richtung bewegen. Hier kreuzen sie sich nie.

Beispiel 2:

Beispiele für Livelock

Im obigen Bild sehen Sie, dass jeder der beiden angegebenen Prozesse zwei Ressourcen benötigt und mithilfe der einfachen Abfrage-Eingaberegistrierung versucht, die für ihn erforderlichen Sperren zu erhalten. Schlägt der Versuch fehl, funktioniert die Methode erneut.

  1. Prozess A hält Y-Ressource
  2. Prozess B enthält Ressource X
  3. Prozess A erfordert X-Ressource
  4. Prozess B erfordert Y-Ressource

Angenommen, Prozess A wird zuerst ausgeführt und erfasst die Datenressource

Allerdings wird keiner der beiden Prozesse blockiert. Sie verbrauchen wiederholt CPU-Ressourcen, ohne dass Fortschritte erzielt werden, stoppen aber auch jeden Verarbeitungsblock.

Daher ist diese Situation nicht die eines deadlock denn es gibt keinen einzigen Prozess, der blockiert ist, aber wir stehen vor einer Situation, die etwas Ähnlichem ist wie deadlock, das ist LIVELOCK.

Was führt zu Livelock?

Livelock tritt auf, wenn die Gesamtzahl der zulässigen Prozesse in einem bestimmten System durch die Gesamtzahl der Einträge in der Prozesstabelle definiert werden soll. Daher sollten Prozesstabellenslots als endliche Ressourcen bezeichnet werden.

Was ist Deadlock?

Ein deadlock ist eine Situation, die im Betriebssystem auftritt, wenn ein Prozess in einen Wartezustand wechselt, weil ein anderer wartender Prozess die angeforderte Ressource hält. Deadlock ist ein häufiges Problem bei der Mehrfachverarbeitung, bei dem mehrere Prozesse eine bestimmte Art von sich gegenseitig ausschließender Ressource gemeinsam nutzen, die als Soft Lock oder Software bezeichnet wird.

Beispiel für Deadlock

  • Ein reales Beispiel wäre der Verkehr, der nur in eine Richtung verläuft.
  • Hier wird eine Brücke als Ressource betrachtet.
  • Also, als Deadlock Wenn ein Problem auftritt, kann es leicht behoben werden, wenn ein Auto zurückfährt (Ressourcen vorenthalten und zurücksetzen).
  • Eventuell müssen bei einem Unfall mehrere Autos rückwärts gefahren werdenadlock Situation eintritt.
  • Hungern ist also möglich.
Beispiel für Deadlock
Beispiel für Deadlock

Was ist Hunger?

Unter Hunger versteht man eine Situation, in der alle Prozesse mit niedriger Priorität blockiert werden und die Prozesse mit hoher Priorität fortgesetzt werden. In jedem System erfolgen Anfragen nach Ressourcen mit hoher/niedriger Priorität weiterhin dynamisch. Dabei ist es erforderlich, dass bestimmte Richtlinien entscheiden, wer wann Unterstützung erhält.

Einige verwenden algorithms, werden einige Prozesse möglicherweise nicht wie gewünscht bedient, auch wenn sie nicht ordnungsgemäß ausgeführt werdenadlockHrsg. Hunger tritt auf, wenn einige Threads dazu führen, dass gemeinsam genutzte Ressourcen über einen längeren Zeitraum nicht verfügbar sind.

Beispiel für Hunger

Ein Objekt bietet beispielsweise a synchronisierte Methode, deren Rückkehr wahrscheinlich lange dauern wird. Wenn ein Thread diese Methode häufig verwendet, müssen auch andere Threads diese Methode häufig verwenden syncDer chronisierte Zugriff auf dasselbe Objekt wird häufig blockiert.

Unterschied zwischen Deadlock, Hunger und Livelock

  • Ein deadlock ist eine Situation, die im Betriebssystem auftritt, wenn ein Prozess in einen Wartezustand eintritt, weil die angeforderte Ressource von einem anderen wartenden Prozess gehalten wird.
  • Ein Livelock hingegen ähnelt fast einem Deadlock, mit der Ausnahme, dass sich die Zustände der an einem Livelock beteiligten Prozesse ständig ändern und keiner voranschreitet.
  • Livelock ist also ein einzigartiger Fall von Ressourcenknappheit.

Zusammenfassung

  • Definition: Ein Livelock ist eine Situation, in der eine Anfrage nach einer exklusiven Sperre wiederholt abgelehnt wird, da sich viele überlappende gemeinsame Sperren gegenseitig stören.
  • Livelock tritt auf, wenn die Gesamtzahl der zulässigen Prozesse in einem bestimmten System durch die Gesamtzahl der Einträge in der Prozesstabelle definiert werden soll
  • Ein deadlock ist eine Situation, die im Betriebssystem auftritt, wenn ein Prozess in einen Wartezustand wechselt, weil ein anderer wartender Prozess die angeforderte Ressource hält.
  • Ein reales Beispiel wäre der Verkehr, der nur in eine Richtung verläuft.
  • Ein Beispiel für Livelock wären zwei Personen, die sich in einem Korridor gegenüberstehen und beide zur Seite gehen, um den anderen passieren zu lassen.
  • Unter Hunger versteht man eine Situation, in der alle Prozesse mit niedriger Priorität blockiert werden und die Prozesse mit hoher Priorität fortgesetzt werden.