Atomowość (obliczenia)

Niepodzielność jest właściwością stosowane w programowania współbieżnego opisać operację lub zestaw operacji przebiegu programu całkowicie bez przerwane przed zakończeniem kursu. Operacja weryfikująca tę właściwość jest  określana jako „  atomowa ”, termin ten pochodzi od ατομος ( atomos ), co oznacza „tego nie można dzielić”.

Pojęcie to odnosi się na przykład do części programu, której proces lub wątek, który nim zarządza, nie zrzeknie się monopolu na określone dane na inny proces przez cały czas trwania tej części. Pojęcie to odnosi się również do transakcji w bazach danych .

Generalnie instrukcje asemblera można traktować jako niepodzielne, ale to nie wystarczy, aby zapewnić spójność danych. Aby to zrobić, należy wdrożyć mechanizmy synchronizacji . W konsekwencji i przez rozszerzenie można powiedzieć, że sekcja chroniona w ten sposób, określana jako sekcja krytyczna chroniona przez wzajemne wykluczenie , jest również atomowa.

Przykłady instrukcji specjalnych, które muszą być atomowe

Kilka instrukcji używanych w pewnych architekturach równoległych jest atomowych i jest używanych do implementacji synchronizacji lub algorytmów nieblokujących.

Często używamy instrukcji Porównaj i zamień , Pobierz i dodaj lub Testuj i ustaw , a także kilka instrukcji Load-Link / Store-Conditional .

Pamięć transakcyjna

Pamięć transakcyjna jest sposób, aby wykonać serię operacji atomowych: transakcja dokonać kilku zmian, a nie powieść, jeśli niektóre zmienne wykorzystywane były zmieniane. Taki mechanizm stosowany jest w bazach danych w postaci programowej pamięci transakcyjnej .


Uwagi i odniesienia

  1. Definicje leksykograficzne i etymologiczne słowa „atom” ze skomputeryzowanego skarbca języka francuskiego na stronie internetowej National Center for Textual and Lexical Resources .