Abstract-Transaktionell minne har stor potential för att förenkla multitrådad programmering genom att tillåta programmerare att ange regioner av programmet som måste verka att köra atomärt. Transaktionsminne implementationer sedan optimistiskt utföra dessa transaktioner samtidigt för att uppnå hög prestanda. Detta arbete visar att samma atomgarantier som ger transaktioner deras makt också har oväntade och potentiellt allvarliga negativa effekter på program som skrevs antar smalare omfattning atomicitet. Vi gör fyra bidrag: (1) vi visar att en direkt översättning av lås-baserade kritiska avsnitt i transaktioner kan införa dödläge i annars korrekta program, (2) vi introducerar termerna stark atomicitet och svag atomicitet för att beskriva samspelet mellan transaktions- och icke-transaktionskod, (3) vi visar att kod som är korrekt under svag atomitet kan dödläge under stark atomäritet, och (4) vi visar att i sekventiellt komponera transaktionskod kan också införa dödläge. Dessa observationer upphäver intuitionen att transaktioner är strikt säkrare än låsbaserade kritiska sektioner, att stark atomäritet är strikt säkrare än svag atomicitet, och att transaktioner alltid är jämförbara.
Blundell m.fl. REF visar att en direkt omvandling av låsbaserade kritiska sektioner till transaktioner kan orsaka dödläge även om det låsbaserade programmet är korrekt.
Subtleties of transactional memory atomicity semantics
{'venue': 'IEEE Computer Architecture Letters', 'journal': 'IEEE Computer Architecture Letters', 'mag_field_of_study': ['Computer Science']}