Start Logga In Skriv Artikel Om Oss
Vad söker du?
Allt om 'Race conditions'

Race conditions

Ett race condition köper försåvitt felsituationer som beror villig att flera processer eller trådar tävlar försåvitt samma resurs.

Exempel

Ett typfall är från databasvärlden där par processer försöker accelerera en kalkylator utan att använda någon sorts låsning, semafor eller liknande kommunikation.

I exempel promenerar det kanhända normalt bra

  • Process A läser värdet fem som en kalkylator har
  • Process A skriver det värdet plus ett, dvs sex, till räknaren
  • Process B läser värdet göka som en kalkylator har
  • Process B skriver det värdet plus ett, dvs sju, till räknaren

Nu har räknaren helt korrekt ökats med två.

Ibland vinner fel process

  • Process A läser värdet tio som en kalkylator har
  • Process B läser värdet tio som en kalkylator har
  • Process A skriver det värdet plus ett, dvs elva, till räknaren
  • Process B skriver det värdet plus ett, dvs elva, till räknaren

Nu har räknaren felaktigt ökats med endast ett, fastän att par olika processer var samt en ville accelerera den med ett.

Åtgärd

Det finns flera olika lösningar villig problemet. Dom promenerar alla ut villig att endast en arbetsgång i taget har korrekt att utföra operationerna läsning samt skrivning i taget. Villig något av flera olika insiktsfull reserverar man en arbetsgång räknaren åt sig, utför läsning samt skrivning samt släpper reservationen. Försåvitt en arbetsgång vill boka räknaren skada den redan är reserverad, plikt processen vänta villig att räknaren blir ledig.

Några olika term som används i dom olika lösningarna, är semafor, monitor, atomär, låsning.

Att hitta race condition-fel

Man kan endera analysera eller försöka för att hitta race condition-fel.

  • Analys är den säkrare metoden. Dessvärre druknar metoden lätt i större projekt. Det finns helt lätt för mycket kod att gå igenom. Försåvitt flertal olika människor har varit inblandade, försåvitt det är ont försåvitt tid, försåvitt deg för evolution börjar bli knappa samt försåvitt ej analys har används alltigenom redan från början av projektet, ja då är det i det närmaste omöjligt att i efterhand tillämpa analys. Dessvärre är det ont försåvitt arbetsredskap för att automatisera denna sorts analys, alltså kvarstår det att utföra analysen manuellt.

Om några symptom ej har märkts av än, av några sådana fel, så är det marigt att ävertyga projektledningen att spendera tidrymd samt deg villig denna sorts analys.

Att ens råka ut för symptom kan produkt nog svårt. För den enstake utvecklaren som sitter ensam villig sin uvecklarstation samt som kör en arbetsgång eller en tråd i taget, är det i det närmaste omöjligt.I verkliga livet är analys dessvärre ej kostnadseffektiv med ett nog lågt pris.

  • Testning kan användas för att provocera fram symptom samt för att isolera felkällan. Eftersom flertal race condition-fel har nedstämd probabilitet att uppträda, kan man med ren funktionell testning knappast provocera fram felet. Däremot klarar man det med hjälp av stresstestning samt dess läggande av påverkad börda till systemet.
Med flertal anrop fås flertal ansats att provocera fram felet. Även försåvitt varje ansats har en tusendels chans att få konkurrerande processer att utföras i fel ordning (se exemplet ovan), så är sannolikheten till minst en sådan instans väldigt påverkad efter flera lax eller miljoner anrop.

Se även

  • Dödlig låsning (deadlock)
  • Låsning (även Locking).

Redigera?

Artikeln skriven 2009-01-18 av Learning4sharing

Inga kategorier för denna artikel än...

Vi behhöver hjälp att kategorisera våra artiklar. Kan du skriva ett nyckelord för denna artikel? Du kan skriva upp till 3 olika nyckelord för denna artikel, vi uppskattar din hjälp!

Skriv nyckelord som du tycker beskriver denna artikel på ett bra sätt. Du kan ange 3 olika nyckelord för denna artikel, max 20 tecken per nyckelord.

  1. Lägg till fler
    Skriv in svaret på frågan: 3+8

Intresserad av fler artiklar?

VSOP
W C Fields
Tonsill
Snodd
Kökkenmödding
Hydrologi
Institut
Anders Nunstedt
Daniel Swedin

Senaste sökningarna

jeet kune do har fått 235 sökningar. Den senaste gjordes 2012-05-26 06:39:50.

va har fått 245 sökningar. Den senaste gjordes 2012-05-26 06:38:10.

tidninga har fått 164 sökningar. Den senaste gjordes 2012-05-26 06:27:14.

ungdomsslang har fått 602 sökningar. Den senaste gjordes 2012-05-26 06:27:08.

ufo har fått 326 sökningar. Den senaste gjordes 2012-05-26 06:27:03.

syre har fått 944 sökningar. Den senaste gjordes 2012-05-26 06:26:58.

rockgrupp har fått 489 sökningar. Den senaste gjordes 2012-05-26 06:26:48.

pesach har fått 708 sökningar. Den senaste gjordes 2012-05-26 06:26:40.

babylon har fått 539 sökningar. Den senaste gjordes 2012-05-26 06:26:33.

AFS har fått 351 sökningar. Den senaste gjordes 2012-05-26 06:26:23.

2 har fått 227 sökningar. Den senaste gjordes 2012-05-26 06:10:11.

banta har fått 173 sökningar. Den senaste gjordes 2012-05-26 06:09:57.

Designed by: template world
Learning4sharing.nu
All Rights Reserved. 1.62 SEK

Logga in

Välkommen att redigera och skriva nya artiklar!

Ingent Konto?

Skaffa konto för att redigera och skapa nya ariklar Nytt Konto.

Ny Användare

Välkommen att redigera och skriva nya artiklar! Skapa konto nedan.


Ett verifieringsmail kommer att skickas till din E-post som du måste öppna och verifiera din E-post med

Lägg till artikel

Du är inte inloggad.

Logga In eller Skapa konto.