4. Atomowość operacji

Wydawać by się mogło z punktu widzenia użytkownika, że wszystkie operacje na dysku pokroju usunięcia pliku powinny być atomowe, jednak w rzeczywistości tak nie jest, jesteśmy w stanie co najwyżej zapewnić atomowość operacji zapisu pojedynczego bloku na dysk. Zatem wiele operacji, które są podstawowymi operacjami dla użytkownika, najczęściej składa się z wielu operacji na systemie plików i jego strukturach.

Można się zastanawiać dlaczego atomowość operacji ma znaczenie. Przyjrzyjmy się dla przykładu operacji usuwania pliku w systemie UNIX - składa się ona co najmniej z dwóch kroków: najpierw następuje usunięcie wpisu w katalogu, następnie i-węzeł pliku ustawiany jest jako wolny. Wydaje się to całkiem naturalnie, jednak co się stanie, jeśli pierwszy krok zdąży się wykonać przed awarią systemu, a drugi już nie zdąży - będziemy mieli do czynienia z osieroconym i-węzłem, a w związku z tym wyciek pamięci, który może wykryć żmudne i czasochłonne przeglądanie całego dysku. Z drugiej strony ,jeśli druga operacja zdąży się wykonać, a pierwsza nie, wówczas może się zdarzyć, że ten i-węzeł zostanie przydzielony do innego pliku, a wpis w katalogu zostanie.

Jak widać z powyższego przykładu ważne jest aby połączenie obu tych operacji było atomowe - wykonały się albo obie pomyślnie, albo też żadna z nich nie odniosła skutku, gdyż w ten sposób system plików z pewnością będzie w stanie spójnym.