Fixing concurrency buggar (eller kryckor) är avgörande i moderna mjukvarusystem. Statiska analyser för att hitta crugs såsom data races och atomicity kränkningar skala dåligt, medan dynamiska metoder ådrar sig hög run-time overheads. Crugs manifesteras endast under specifika utförande interleavings som inte kan uppstå under interna tester, vilket kräver en lätt programövervakning teknik som kan användas efter utplacering. Vi presenterar Cooperative Crug Isolation (CCI), en lowoverhead instrumentation ram för att diagnostisera produktionskörning misslyckanden orsakade av crugs. CCI spårar specifika trådkopplingar vid körtid, och använder statistiska modeller för att identifiera starka fel prediktorer bland dessa. Vi erbjuder en varierad uppsättning predikat som representerar olika avvägningar mellan komplexitet och felisoleringsförmåga. Vi utvecklar också alternativa slumpmässiga provtagningsstrategier som passar olika typer av predikat och hjälper till att hålla run-time overhead låg. Experiment med 9 verkliga fel i 6 icke-triviala C-applikationer visar att dessa system spänner över ett brett spektrum av prestanda och diagnoskapacitet, var och en lämplig för olika användningsscenarier.
På liknande sätt, Jin et al. REF presenterade ett övervakningsramverk kallat Cooperative Crug Isolation för att diagnostisera produktionsfel orsakade av konvergerande fel.
Instrumentation and sampling strategies for cooperative concurrency bug isolation
{'venue': 'OOPSLA', 'journal': None, 'mag_field_of_study': ['Computer Science']}