Wyróżnia się kilka poziomów bezpieczeństwa:
Przezroczystość awarii – gwarantowane jest, że dana operacja zakończy się sukcesem i wyprodukuje poprawny wynik nawet wtedy, jeśli w trakcie wykonywania pojawiła się sytuacja wyjątkowa. Operacja potrafi we własnym zakresie obsłużyć wszystkie wyjątki – nigdy nie są one przekazywane do kodu ją wywołującego. Jest to najwyższy stopień bezpieczeństwa kodu. Atomowość operacji (także silne bezpieczeństwo dla wątków) – operacja albo wykona się w całości poprawnie, albo w przypadku awarii pozostawi system w stanie niezmienionym (lub przywraca go do stanu początkowego), nie powodując żadnych skutków ubocznych. Kod wywołujący dostaje informację o awarii, lecz ma zagwarantowane, że żadne dane nie zostały zmienione. Podstawowe bezpieczeństwo dla wątków – w przypadku awarii operacja może mieć efekty uboczne, lecz w dalszym ciągu pozostają spełnione niezmienniki. Wartości w obrębie struktur danych mogą ulec zmianie, ale w dalszym ciągu będą one poprawne z punktu widzenia systemu. Minimalne bezpieczeństwo dla wątków – awaria lub wyjątek w trakcie wykonywania operacji nie powoduje wycieków pamięci, ani błędów krytycznych, lecz może produkować nieprawidłowe dane. Brak bezpieczeństwa dla wątków – brak jakichkolwiek gwarancji. Najgorszy poziom bezpieczeństwa.
Zobacz też Przerwanie
Przypisy
Kategoria:Konstrukcje programistyczne