Co je to podmínka závodu?
Závodní podmínky mají co do činění s pokusy systému nebo jednotlivého zařízení zapojit se do multitaskingu. Obecně platí, že podmínka závodu existuje, když se systém pokouší zpracovat dvě nebo více různých operací současně, ale není schopen tak učinit. Důvodem selhání je to, že operace nejsou uspořádány ve správném pořadí, okolnost může vést k vypnutí systému.
Přestože je mnoho různých zařízení nakonfigurováno tak, aby umožňovalo multitasking, stále existuje interní proces, který vytváří hierarchii funkcí. Aby se mohly uskutečnit určité funkce, musí se předem vyskytnout jiné funkce. Zatímco konečný uživatel si je vědom toho, že všechny funkce se mohou zdát, že se odehrávají současně, není tomu tak nutně.
Závodní podmínka je vytvořena, když se soupeří dvě nebo více operací, aby dosáhly dokončení před ostatními operacemi. Jsou-li všechny jednotlivé funkce správně uspořádány, vede to k úspěšnému provedení všech funkcí včas. Pokud je však posloupnost operací vyhozena z rovnováhy, vytvoří se problém. V nejhorším případě podmínka závodu znemožní systému pokračovat ve svém pokusu zpracovat všechny funkce v aktuálním pořadí. Protože systém může před zpracováním první a druhé funkce potřebovat zpracovat pátou funkci v řetězci, musí být celý řetězec přerušen a znovu vytvořen ve správném pořadí.
Jeden běžný příklad rasového stavu se týká zpracování dat. Pokud systém přijme příkazy ke čtení existujících dat při psaní nových dat, může to vést ke konfliktu, který způsobí, že se systém nějakým způsobem vypne. Systém může zobrazovat určitý typ chybové zprávy, pokud množství zpracovávaných dat způsobuje nepřiměřené zatížení dostupných zdrojů, nebo se systém jednoduše může vypnout. Když k tomu dojde, je obvykle dobré restartovat systém a spustit sekvenci znovu. Pokud je množství zpracovávaných dat značné, může být lepší umožnit dokončení asimilace nových dat před pokusem o přečtení některého z aktuálně uložených dat.
Mnoho systémů se vyhýbá potenciálním podmínkám závodu stanovením priorit v provozních protokolech. Priority jsou stanoveny tak, aby dobře fungovaly v rámci schopností systému, a tak omezovaly schopnost vývoje závodu.