Race Hazard

Race Hazard
Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik).

Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen bezeichnet, in denen das Ergebnis einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen abhängt.

Unbeabsichtigte Wettlaufsituationen sind ein häufiger Grund für schwer auffindbare Programmfehler; bezeichnend für solche Situationen ist nämlich, dass bereits die veränderten Bedingungen zum Programmtest zu einem völligen Verschwinden der Symptome führen können. Zur Vermeidung solcher Konstellationen können bei der Programmerstellung beispielsweise Semaphoren eingesetzt werden.

Beispiel

Zwei gleichzeitig laufende Systeme wollen denselben Wert erhöhen. Die notwendigen Einzelschritte, die jedes der beiden Systeme durchlaufen muss, sind:

  1. Wert lesen: Der Wert wird aus dem externen Speicher in den internen Speicher gelesen.
  2. Wert erhöhen: Der Wert wird im internen Speicher um 1 erhöht.
  3. Wert schreiben: Der Wert aus dem internen Speicher zurück in den externen Speicher geschrieben.

Angenommen, der Wert betrage anfangs 1. Das erste System heißt "A", das zweite System "B". Erhöhen beide Systeme den Wert, ist der erwartete neue Wert 3. Wenn System A zeitlich vor System B arbeitet, wird das auch so sein:

Zeitpunkt System A Gespeicherter Wert System B
1 Einlesen des Wertes
Wert: 1
1
2 Erhöhen des internen Wertes um eins
Wert: 2
1
3 Speichern des Wertes 2
4 2 Einlesen des Wertes
Wert: 2
5 2 Erhöhen des internen Wertes um eins
Wert: 3
6 3 Speichern des Wertes

Arbeiten beide Systeme gleichzeitig und ist die Reihenfolge der Befehle unbestimmt, kann die Wettlaufsituation jedoch dazu führen, dass der tatsächlich erhaltene, neue Wert stattdessen 2 beträgt:

Zeitpunkt System A Gespeicherter Wert System B
1 Einlesen des Wertes
Wert: 1
1 Einlesen des Wertes
Wert: 1
2 Erhöhen des internen Wertes um eins
Wert: 2
1 Erhöhen des internen Wertes um eins
Wert: 2
3 Speichern des Wertes 2 Speichern des Wertes

Zur Vermeidung des Problems müsste A den Zugriff auf den Wert bis zum Abschluss der Veränderung so sperren, dass B warten muss bis A seinen Zugriff auf den Wert beendet hat.

Zeitpunkt System A Gespeicherter Wert System B
1 Sperrungen vor anderen Zugriffen
(falls dies nicht möglich ist warten)
1
2 Einlesen des Wertes
Wert: 1
1 Sperrungen vor anderen Zugriffen
(falls dies nicht möglich ist warten)
3 Erhöhen des internen Wertes um eins
Wert: 2
1 Auf Freigabe warten...
4 Speichern des Wertes 2 Auf Freigabe warten...
5 Aufheben der Sperrung 2 Sperrungen vor anderen Zugriffen
(Nun erfolgt die eigentliche Sperrung)
6 2 Einlesen des Wertes
Wert: 2
7 2 Erhöhen des internen Wertes um eins
Wert: 3
8 3 Speichern des Wertes

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

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

  • race hazard — noun A race condition …   Wiktionary

  • Race condition — in a logic circuit. Here, ∆t1 and ∆t2 represent the propagation delays of the logic elements. When the input value (A) changes, the circuit outputs a short spike of duration (∆t1+∆t2) ∆t2 = ∆t1. A race condition or race hazard is a flaw in an… …   Wikipedia

  • Hazard (disambiguation) — A hazard is an event posing a threat to life, health, property or environment. Hazard may also refer to:* Chemical hazard, a property of a material dangerous to human life or health * A hazard, for instance a natural hazard, a danger or source of …   Wikipedia

  • Race-Condition — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

  • Race condition — Dieser Artikel erläutert Race Condition in der Informatik, für die Race Condition in der Elektronik siehe Glitch (Elektronik). Als Race Condition oder Race Hazard (deutsch: Wettlaufsituation) werden in der Programmierung Konstellationen… …   Deutsch Wikipedia

  • Race Condition — Ein kritischer Wettlauf, auch Wettlaufsituation (engl. Race Condition oder Race Hazard) ist in der Programmierung eine Konstellation, in der das Ergebnis einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen abhängt.… …   Deutsch Wikipedia

  • race condition — noun A flaw in a system or process whereby the output or result is unexpectedly and critically dependent on the sequence or timing of other events. A race condition in writing my guest book file meant that the last person to sign wiped out all… …   Wiktionary

  • Hazard (computer architecture) — Hazards are problems with the instruction pipeline in central processing unit (CPU) microarchitectures that potentially result in incorrect computation. There are typically three types of hazards: data hazards structural hazards control hazards… …   Wikipedia

  • Hazard, Kentucky — Infobox Settlement official name = Hazard settlement type = City motto = Queen City of the Mountains. imagesize = 250x140px image caption = image image shield = mapsize = 250px map caption = Location of Hazard, Kentucky mapsize1 = map caption1 =… …   Wikipedia

  • Hazard High School — Infobox School name = Hazard High School imagesize = logo = caption = location = 157 Bulldog Lane Hazard, Kentucky 41701 district = Hazard Independent Schools country = USA coordinates = coord|37.252416|N|83.193669|W|region:US KY… …   Wikipedia

Share the article and excerpts

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