Sposoby opóźniania przywracania pamięci obejmują uruchamianie algorytmu w środowisku z automatycznym odśmiecaniem pamięci, hazard pointer lub read-copy-update (RCU).

Niektóre architektury dostarczają „dużych” instrukcji atomowych, takich że nawet dwa wskaźniki (w przód i w tył) w listach dwukierunkowych mogą być aktualizowane w sposób niepodzielny.

Niektóre architektury dostarczają instrukcje load-link/store-conditional, w których zapis jest dokonywany tylko, jeśli nie było innej operacji zapisu do zadanej lokacji. To skutecznie oddziela znaczenie „… zawiera wartość” od „… został zmieniony”. Takie instrukcje wspierane są przez DEC Alpha, MIPS, PowerPC lub ARM (v6 lub nowsza). Jednak żadne praktyczne implementacje load-link nie będą bezpośrednio rozwiązywały problem ABA.

Przypisy

Bibliografia

Kategoria:Obliczenia równoległe Kategoria:Programowanie równoległe