Hva er en rase-tilstand?
Løpsforhold har å gjøre med forsøk fra et system eller individuell enhet til å delta i multitasking. Generelt eksisterer det en løpsbetingelse når systemet prøver å behandle to eller flere forskjellige operasjoner samtidig, men ikke klarer det. Årsaken til feilen er at operasjonene ikke er stilt opp i riktig rekkefølge, en omstendighet kan føre til at systemet slås av.
Mens mange forskjellige enheter er konfigurert for å tillate multitasking, er det fortsatt en intern prosess som skaper et hierarki med funksjoner. For at visse funksjoner skal finne sted, må andre funksjoner forekomme på forhånd. Selv om sluttbrukeren oppfatter at alle funksjonene kan se ut til å foregå på samme tid, er dette ikke nødvendigvis tilfelle.
En løpsbetingelse opprettes når to eller flere operasjoner kjemper mot hverandre for å komme i mål foran de andre operasjonene. Når alle de individuelle funksjonene er ordnet, fører dette til vellykket utførelse av alle funksjonene på en riktig måte. Imidlertid, hvis sekvensen av operasjoner blir kastet ut av balanse, skaper dette en flaskehals. I verste fall vil løpsbetingelsen gjøre det umulig for systemet å fortsette i sitt forsøk på å behandle alle funksjonene i den rekkefølgen som er i øyeblikket. Siden systemet kan trenge å behandle den femte funksjonen i strengen før den første og andre funksjonen kan fullføres, må hele strengen avbrytes og reetableres i riktig rekkefølge.
Et vanlig eksempel på en rasetilstand har å gjøre med behandlingen av data. Hvis et system mottar kommandoer for å lese eksisterende data mens du skriver nye data, kan dette føre til en konflikt som får systemet til å slå seg av på noen måte. Systemet kan vise en slags feilmelding hvis datamengden som behandles plasserer en utilbørlig belastning på tilgjengelige ressurser, eller systemet ganske enkelt kan slå av. Når dette skjer, er det vanligvis en god idé å starte systemet på nytt og begynne sekvensen på nytt. Hvis datamengden som behandles er betydelig, kan det være bedre å tillate assimilering av de nye dataene før du prøver å lese noen av de lagrede dataene.
Mange systemer unngår potensialet for en rasetilstand ved å sette prioriteringer i de operative protokollene. Prioriteringene er etablert for å fungere godt innenfor mulighetene til systemet og dermed begrense muligheten til en løpskondisjon til å utvikle seg.