Skip to main content

Vad är ett rasvillkor?

Rasförhållanden har att göra med försök från ett system eller enskild enhet för att delta i multitasking.I allmänhet finns ett rasvillkor när systemet försöker bearbeta två eller flera olika operationer samtidigt, men kan inte göra det.Anledningen till misslyckandet är att operationerna inte är uppradade i rätt sekvens, en omständighet kan leda till att systemet stängs av.

Medan många olika enheter är konfigurerade för att tillåta multitasking, finns det fortfarande en intern process som skapar en hierarki av funktioner.För att vissa funktioner ska äga rum måste andra funktioner ske i förväg.Medan slutanvändaren uppfattar att alla funktioner kan tyckas äga rum samtidigt, är detta inte nödvändigtvis fallet.

Ett rasvillkor skapas när två eller flera operationer kämpar med varandra för att nå slutförandet före de andra operationerna.När alla enskilda funktioner är ordentligt ordnade leder detta till en framgångsrik exekvering av alla funktioner i rätt tid.Men om operationssekvensen kastas ur balans skapar detta en flaskhals.I det sämre fallet kommer tävlingsvillkoret att göra det omöjligt för systemet att fortsätta i sitt försök att bearbeta alla funktioner i den ordning som för närvarande är engagerad.Eftersom systemet kan behöva bearbeta den femte funktionen i strängen innan de första och andra funktionerna kan slutföras, måste hela strängen avbrytas och återupprättas i rätt ordning.

Ett vanligt exempel på ett rasvillkor har att göra med behandlingen av data.Om ett system tar emot kommandon för att läsa befintliga data när du skriver nya data kan detta leda till en konflikt som får systemet att stängas av på något sätt.Systemet kan visa någon typ av felmeddelande om mängden data som behandlas placerar en onödig belastning på tillgängliga resurser, eller systemet kan helt enkelt stänga av.När detta händer är det vanligtvis en bra idé att starta om systemet och börja sekvensen igen.Om mängden data som behandlas är betydande kan det vara bättre att tillåta assimilering av de nya uppgifterna att slutföras innan du försöker läsa någon av de för närvarande lagrade uppgifterna.

Många system undviker potentialen för ett rasvillkor genom att sätta prioriteringar i de operativa protokollen.Prioriteringarna upprättas för att fungera väl inom systemets kapacitet och därmed begränsa förmågan hos ett rasvillkor att utvecklas.