Stanje dirke ali nevarnost dirke je scenarij v sistemu elektronske obdelave, kjer na rezultat izračuna lahko vpliva nepredvideno ali nenadzorovano zaporedje dogodkov. Temeljni koncept je, da na rezultate procesa ne sme nikoli vplivati ena od operacij, ki "zmagajo na dirki".
- Primer.
- Pogoji za dirko CPU.
- Pogoji za programsko opremo.
Razmislite o naslednjem nizu operacij:
- spremenljivka a = 1
- spremenljivka a = a * 5
- spremenljivka b = a - 1
Če se te operacije obdelajo v pravilnem zaporedju, mora biti spremenljivka b enaka 4. Če pa se operacija 3 izvede, preden se zaključi operacija 2, b pomeni 0.
Pogoji tekmovanja v procesorjih
Pogoji tekmovanja so pomemben problem pri načrtovanju CPU-ja, ki uporablja tako vzporedne kot sočasne tehnike obdelave za izvajanje večih navodil v prekrivajočem se časovnem okviru. Da bi zagotovili, da rezultati izračunov niso poškodovani, morajo biti pogoji dirke vedno predvideni in izogibani.
Pogoji tekmovanja v programski opremi
To je tudi pomemben problem za razvijalce programske opreme, ki morajo ravnati v vseh pogojih dirke, ki se lahko pojavijo, ko se njihova koda uporablja v dejanskih razmerah. Znano je, da je neprimerno ravnanje z dirko v programski opremi NASA-jevega roverja Spirit raziskovanja skoraj povzročilo izgubo roverja kmalu po pristanku na Marsu.
Oblikovanje, vzporedna obdelava, programski izrazi