- Race-Condition
- (Computer) Zustandsbeschreibung in einem Betriebssystem mit Multitasking bzw. Multprogramming?. Zwei nebenläufige Prozesse werden von Betriebssystem gescheduled? und konkurrieren dabei um eine gemeinsam genutzte Ressource, was zu inkorrekten Ergebnissen führt. Der Begriff "Race-Condition" rührt von der Tatsache, dass der erste Prozess "gewinnt" und die Änderungen des zweiten überschreibt.
Beispiel:
Zwei fast identische Prozesse A und B.
Prozess A
| Prozess B
| Wirkung
Datenwort laden |
Angenommen der Wert an der Speicheradresse
0x00001e3f sei zu beginn null. Durch das Scheduling des Betriebssystem verläuft die tatsächliche Ausführungsreihenfolge so:
- Prozesse A und B gestartet, Ausführung beginng bei A.
- (A 1.) 0 aus
0x00001e3fgeladen - Unterbrechung durch Betriebsssytem, Wechsel zu Prozess B
- (B 1.) 0 aus
0x00001e3fgeladen - (B 2.) 2 hinzuaddiert: Wert ist 2
- (B 3.) 2 in
0x00001e3fgespeichert - Unterbrechung durch Betriebsssytem, Wechsel zu Prozess A
- (A 2.) 1 hinzuaddiert: Wert ist 1
- (A 3.) 1 in
0x00001e3fgespeichert, überschreibt vorherigen Wert
Als Endergebnis wird der Wert 1 gespeichert, aber eigentlich sollte 1 und 2 addiert werden, so dass das Endergebnis 3 ergeben müsste. A hat also "das Rennen gewonnen" und konnte seinen Wert speichern.
Referenzen auf Race-Condition:
Zuletzt geändert am 14 März 2005 14:07 Uhr von chrschn
