Wytrwałość (informatyka) - Persistence (computer science)

W informatyce , wytrwałość odnosi się do charakterystyki stanu systemu, które żyją dłużej (ponad powtarzał) proces , który go stworzył. W praktyce osiąga się to poprzez przechowywanie stanu jako danych w komputerowych magazynach danych . Programy muszą przesyłać dane do iz urządzeń pamięci masowej oraz muszą zapewniać odwzorowania struktur danych natywnego języka programowania na struktury danych urządzeń pamięci masowej.

Na przykład programy do edycji obrazów lub edytory tekstu osiągają trwałość stanu , zapisując swoje dokumenty w plikach .

Ortogonalna lub przezroczysta trwałość

Mówi się, że trwałość jest „ ortogonalna ” lub „przezroczysta”, gdy jest zaimplementowana jako nieodłączna właściwość środowiska wykonawczego programu. Środowisko ortogonalnego utrwalania nie wymaga żadnych konkretnych działań ze strony uruchomionych w nim programów w celu odzyskania lub zapisania ich stanu .

Nieortogonalna wytrwałość wymaga dane mają być zapisywane i odczytywane z pamięci i do korzystania szczegółowe instrukcje w programie, w wyniku użycia utrzymywać jako czasownik: Po zakończeniu program utrzymuje dane .

Zaletą środowisk ortogonalnych trwałości jest prostsze i mniej podatne na błędy programy.

Termin „trwały” został po raz pierwszy wprowadzony przez Atkinsona i Morrisona w znaczeniu ortogonalnej trwałości: użyli oni raczej przymiotnika niż czasownika, aby podkreślić trwałość jako właściwość danych, w odróżnieniu od imperatywnej czynności wykonywanej przez program. Użycie czasownika przechodniego „persist” (opisującego czynność wykonywaną przez program) jest formacją wsteczną.

Przyjęcie

Trwałość ortogonalna jest szeroko stosowana w systemach operacyjnych do hibernacji oraz w systemach wirtualizacji platform , takich jak VMware i VirtualBox, do zapisywania stanu.

Badania prototypów języków, takich jak PS-algol , Napier88 , Fibonacci i pJama, z powodzeniem zademonstrowały te koncepcje wraz z zaletami dla programistów.

Techniki wytrwałości

Obrazy systemu

Korzystanie z obrazów systemu jest najprostszą strategią trwałości. Hibernacja notebooka jest przykładem ortogonalnego utrwalania obrazu systemu, ponieważ nie wymaga żadnych działań ze strony programów działających na komputerze. Przykładem nieortogonalnego utrwalania obrazu systemu jest prosty program do edycji tekstu wykonujący określone instrukcje w celu zapisania całego dokumentu do pliku.

Wady : Wymaga wystarczającej ilości pamięci RAM, aby utrzymać cały stan systemu. Zmiany stanu wprowadzone w systemie po zapisaniu ostatniego obrazu są tracone w przypadku awarii lub zamknięcia systemu. Zapisywanie obrazu dla każdej pojedynczej zmiany byłoby zbyt czasochłonne w przypadku większości systemów, dlatego obrazy nie są używane jako pojedyncza technika trwałości w przypadku krytycznych systemów.

Czasopisma

Korzystanie z dzienników jest drugą najprostszą techniką utrwalania. Kronikowanie to proces przechowywania zdarzeń w dzienniku przed zastosowaniem każdego z nich do systemu. Takie dzienniki nazywane są dziennikami.

Podczas uruchamiania dziennik jest odczytywany, a każde zdarzenie jest ponownie stosowane w systemie, co pozwala uniknąć utraty danych w przypadku awarii lub zamknięcia systemu.

Cała historia poleceń użytkownika „Cofnij/Ponów” w programie do edycji obrazu, na przykład po zapisaniu do pliku, stanowi dziennik, który umożliwia odzyskanie stanu edytowanego obrazu w dowolnym momencie.

Kroniki są używane przez systemy plików z kronikowaniem , popularne systemy i systemy zarządzania bazami danych, gdzie są również nazywane „dziennikami transakcji” lub „dziennikami ponawiania”.

Wady : Gdy używane są wyłącznie kroniki, cała (potencjalnie duża) historia wszystkich zdarzeń systemowych musi być ponownie stosowana przy każdym uruchomieniu systemu. W rezultacie dzienniki są często łączone z innymi technikami trwałości.

Brudne pisze

Ta technika polega na zapisywaniu do pamięci tylko tych części stanu systemu, które zostały zmodyfikowane (są brudne) od czasu ich ostatniego zapisu. Na przykład wyrafinowane aplikacje do edycji dokumentów będą używać brudnych zapisów do zapisywania tylko tych części dokumentu, które zostały faktycznie zmienione od ostatniego zapisania.

Wady: Ta technika wymaga przechwytywania zmian stanu w programie. Osiąga się to w nieprzejrzysty sposób, wymagając określonych wywołań API pamięci masowej lub w sposób przejrzysty z automatyczną transformacją programu . Powoduje to, że kod jest wolniejszy niż kod natywny i bardziej skomplikowany do debugowania.

Warstwy trwałości

Każda warstwa oprogramowania, która ułatwia programowi utrwalanie swojego stanu, jest ogólnie nazywana warstwą trwałości. Większość warstw trwałości nie osiąga trwałości bezpośrednio, ale korzysta z podstawowego systemu zarządzania bazą danych .

Rozpowszechnienie systemu

Rozpowszechnienie systemu to technika, która łączy wspomniane powyżej obrazy systemu i dzienniki transakcji, aby przezwyciężyć ich ograniczenia.

Wady: Rozpowszechniony system musi mieć wystarczającą ilość pamięci RAM, aby utrzymać cały stan systemu.

Systemy zarządzania bazami danych (SZBD)

DBMS używają kombinacji brudnych zapisów i technik księgowania transakcji wspomnianych powyżej. Zapewniają nie tylko trwałość, ale także inne usługi, takie jak zapytania, audyt i kontrola dostępu.

Trwałe systemy operacyjne

Trwałe systemy operacyjne to systemy operacyjne, które pozostają trwałe nawet po awarii lub nieoczekiwanym zamknięciu. Systemy operacyjne, które wykorzystują tę możliwość, obejmują:

Zobacz też

Bibliografia

  1. ^ B Atkinson, temperatura topnienia ; Bailey, PJ; Chisholm, KJ; Cockshott, WP ; Morrison, R. (1983). „PS-algol: język programowania trwałego” (pdf) . Materiały 10. Australijska Krajowa Konferencja Komputerowa . 10. Australijska Krajowa Konferencja Komputerowa. Melbourne, Australia. str. 70-79.
  2. ^ Balzer, Stephanie (17 listopada 2005). „Zakontraktowane programowanie obiektów trwałych” (PDF) . Uniwersytet Glasgow — Szkoła CS — Badania . ETH Zurych. Zarchiwizowane z oryginału (PDF) 31 grudnia 2006 . Źródło 21 września 2015 .