Data races är bland de mest tillförlitliga indikatorer för programmering fel i samtidig programvara. I minst två decennier har Lamports relation före (HB) fungerat som standardtest för att upptäcka andra racetekniker, såsom locksetbaserade tillvägagångssätt, underlåter att vara sund, eftersom de felaktigt kan varna för raser. Detta arbete introducerar en ny relation, causally-precedes (CP), som generaliserar händer-innan att observera fler raser utan att offra sundhet. Intuitivt försöker CP fånga begreppet händer-före beordrade händelser som måste inträffa i den observerade ordningen för att programmet ska kunna observera samma värden. Det som skiljer CP från tidigare prediktiva rasdetektionsmetoder (som också generaliserar en observerad exekvering för att upptäcka raser i andra troliga utföranden) är att CP-baserad rasdetektion är både sund och polynomisk komplexitet. Vi visar att de unika aspekterna av CP resulterar i praktisk nytta. Genom att applicera CP på verkliga program analyserar vi framgångsrikt program på servernivå (t.ex. Apache FtpServer) och visar att spår längre än i tidigare prediktiva rasanalyser kan analyseras på bara några sekunder till några minuter. För dessa program, CP ras detektion avslöjar raser som är svåra att upptäcka genom upprepad avrättning och HB ras detektion: en enda körning av CP ras detektion producerar flera raser som inte upptäcks av 10 separata omgångar av händelser-före ras detektion.
Med målet att observera fler raser per körning, Smaragdakis et al. REF introducerar ett nytt samband, som kallas kausalt precedes, vilket är en generalisering av händelser-före relationen.
Sound predictive race detection in polynomial time
{'venue': "POPL '12", 'journal': None, 'mag_field_of_study': ['Computer Science']}