Race Condition — Änderungen 5620 → 7768

Zeile 1: Zeile 1:
−
Eine Race Condition (auf Deutsch "kritischer Wettlauf", wörtlich "Wettlaufsituation") ist eine Konstellation, in der das Resultat einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen abhängt. Sie stellen eine sehr schwer auffindbare Fehlerquelle dar, da das erfolgreiche Abschließen der bewussten Operation sozusagen vom Zufall abhängt - mal funktioniert das System, mal nicht.
+
Eine Race Condition (auf Deutsch „kritischer Wettlauf“, wörtlich „Wettlaufsituation“) ist eine Konstellation, in der das Resultat einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen abhängt. Sie stellen eine sehr schwer auffindbare Fehlerquelle dar, da das erfolgreiche Abschließen der bewussten Operation sozusagen vom Zufall abhängt – mal funktioniert das System, mal nicht.
  
 
== Beispiel ==
 
== Beispiel ==
Zeile 63: Zeile 63:
 
</center>
 
</center>
  
−
Aber was passiert, wenn der Scheduler genau nach der while-Schleife unterbricht? Schauen wir es uns an...
+
Aber was passiert, wenn der Scheduler genau nach der while-Schleife unterbricht? Schauen wir es uns an…
 
<center>
 
<center>
 
{| {{Prettytable}} cellpadding="5"
 
{| {{Prettytable}} cellpadding="5"
Zeile 103: Zeile 103:
 
</center>
 
</center>
  
−
Das Problem ist klar: Prozess A hat die Überprüfung nicht korrekt durchgesetzt und printer_reserved auf eins gesetzt, obwohl es das schon war. Dadurch druckt zuerst Prozess B, dann Prozess A und dann Prozess B. Die Folge ist logischerweise Chaos auf dem fertigen Blatt Papier. Und genau das ist eine Race Condition: Sie hängt davon ab, ob Prozess A mit der Überprüfung von printer_reserved und dem Setzen schnell genug fertig wird, bevor ihn der Scheduler unterbricht - quasi ein Wettlauf, ein "Race", zwischen Scheduler und Prozess.
+
Das Problem ist klar: Prozess A hat die Überprüfung nicht korrekt durchgesetzt und printer_reserved auf eins gesetzt, obwohl es das schon war. Dadurch druckt zuerst Prozess B, dann Prozess A und dann Prozess B. Die Folge ist logischerweise Chaos auf dem fertigen Blatt Papier. Und genau das ist eine Race Condition: Sie hängt davon ab, ob Prozess A mit der Überprüfung von printer_reserved und dem Setzen schnell genug fertig wird, bevor ihn der Scheduler unterbricht – quasi ein Wettlauf, ein „Race“, zwischen Scheduler und Prozess.
  
 
[[Kategorie:Glossar]]
 
[[Kategorie:Glossar]]