Atomicitate (calcul)

Atomicitatea este o proprietate utilizată în programarea concurentă pentru a descrie o operațiune sau set de operațiuni ale unui program de a alerga în întregime , fără a fi întrerupt înainte de sfârșitul cursului lor. O operație care verifică această proprietate este calificată ca „  atomică  ”, acest termen derivă din ατομος ( atomos ) care înseamnă „că nu se poate împărți”.

Acest concept se aplică, de exemplu, unei părți a unui program al cărei proces sau firul care îl gestionează nu va ceda monopolul anumitor date unui alt proces pe tot parcursul acestei părți. Acest concept se aplică și tranzacțiilor bazelor de date .

În general, instrucțiunile de asamblare pot fi considerate atomice, dar acest lucru nu este suficient pentru a asigura coerența datelor. Pentru a face acest lucru, trebuie implementate mecanisme de sincronizare . În consecință și prin extensie, este posibil să spunem că o secțiune protejată în acest mod, denumită secțiune critică protejată prin excludere reciprocă , este, de asemenea, atomică.

Exemple de instrucțiuni speciale care trebuie să fie atomice

Mai multe instrucțiuni utilizate în anumite arhitecturi paralele sunt atomice și sunt utilizate pentru a implementa sincronizări sau algoritmi non-blocanți.

Folosim adesea instrucțiunile Comparare și swap , Preluare și adăugare sau Testare și setare , precum și instrucțiunile cuplate Load-Link / Store-Conditional .

Memorie tranzacțională

Memoria tranzacțional este o modalitate de a face o serie de tranzacții atomice: o tranzacție pentru a face mai multe modificări, și nu în cazul în care unele dintre variabilele utilizate au fost modificate. Un astfel de mecanism este utilizat în bazele de date sub formă de memorie tranzacțională software .


Note și referințe

  1. Definiții lexicografice și etimologice ale „atomului” din trezoreria computerizată a limbii franceze , pe site-ul web al Centrului Național pentru Resurse Textuale și Lexicale .