Was ist der Unterschied zwischen schwacher Fairness und starker Fairness?

8

Was ist der Unterschied zwischen schwacher Fairness und starker Fairness? Was wäre ein Beispiel, das eine Menge von Variablen und eine Menge von Aktionen enthält?

    
invariant 27.02.2011, 03:31
quelle

2 Antworten

6
  1. In Anbetracht eines Übergangsgraphen sorgt schwache Fairness dafür, dass die Ausführung nicht für immer bleiben kann in einem Zustand, in dem Aktionen aktiviert sind, die zu anderen Zuständen führen.
  2. Unter starker Fairness kann keine Aktion unendlich oft ohne Ausführung ausgeführt werden.
Poul K. Sørensen 08.12.2012 12:45
quelle
6

Ich bin mir nicht ganz sicher, aber ich glaube, das ist die Antwort:

Stark gegen schwach

Ein Scheduler ist sehr fair, wenn jeder unendlich oft aktivierte Prozess irgendwann läuft.

Ein Scheduler ist schwach fair, wenn jeder dauerhaft aktivierte Prozess schließlich ausgeführt wird.

  • Für Shared-Variable-Programme ist schwache Fairness angemessen
  • Für schwache Prozesse ist eine schwache Fairness zwar sinnvoll, aber nicht sehr nützlich (die Aktivierung ist nicht lokal)
  • Starke Fairness ist nicht realistisch (zu viel Buchhaltung)
  • Für schwache Prozesse ist eine schwache Fairness sowohl sinnvoll als auch nützlich

Beispiel

%Vor%

Es wäre ungerecht, die zweite Alternative weiter auszuführen, da dies das Potenzial für eine synchronisierte Kommunikation zwischen den beiden Prozessen, die zu einer unendlichen Anzahl von Gelegenheiten hätte ausgeführt werden können, ignorieren würde.

Eine effiziente Implementierung sollte versuchen, einigermaßen fair zu sein und sicherstellen, dass ein Ausgabebefehl nicht unangemessen oft verzögert wird, nachdem er erst ausführbar wird.

Was ist fair?

  • Eine solche Hinrichtung ist nicht sehr fair, aber schwach fair.
  • Unter der Annahme starker Fairness endet das Programm mit n = 0.
  • Geht man von schwacher Fairness aus, kann das Programm auch divergieren.
technaj 14.03.2011 20:57
quelle

Tags und Links