Dynamisk rasdetektering är problemet med att avgöra om ett observerat program utförande avslöjar närvaron av en data ras i ett program. Det klassiska tillvägagångssättet för att lösa detta problem är att upptäcka om det finns ett par motstridiga minnesåtkomster som är oordnade av Lamports händelse-före (HB) relation. HB-baserad detektering av ras är känd för att inte rapportera falska positiva, dvs. det är sunt. Men sundheten garanti HB bara lovar att det första paret av oordnade, motstridiga händelser är en schepulable data race. Det vill säga, det kan finnas par av HB-oordnade motstridiga data åtkomster som inte är schemalägga raser eftersom det inte finns någon omordning av händelserna i utförandet, där händelserna i rasen kan utföras omedelbart efter varandra. Vi introducerar en ny partiell ordning, kallas scheduble händer-före (SHB) som exakt karakteriserar par av scheduble data races — varje par av motstridiga dataåtkomster som identifieras av SHB kan schemaläggas, och varje HB-race som kan schemaläggas identifieras av SHB. Därför är SHB:s partiella ordning verkligen sund. Vi presenterar en linjär tid, vektorklocka algoritm för att upptäcka schedulable raser med SHB. Våra experiment visar värdet av vår algoritm för dynamisk race detektion — SHB har endast lite prestanda overhead och kan skala till exekveringar från verkliga program utan att kompromissa ljud.
Algoritmen i REF identifierar några händelser som är involverade i en datakapplöpning.
What happens-after the first race? enhancing the predictive power of happens-before based dynamic race detection
{'venue': 'PACMPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}