Kalıcılık (bilgisayar bilimi) - Persistence (computer science)

Olarak bilgisayar biliminin , kalıcılık özelliğine değinmektedir durum outlives (devam ederse fazla) bir sistemin işlem bunu oluşturulan. Bu, pratikte, durumu bilgisayar veri deposunda veri olarak depolayarak elde edilir . Programlar, depolama aygıtlarına ve depolama aygıtlarından veri aktarmalı ve yerel programlama dili veri yapılarından depolama aygıtı veri yapılarına eşlemeler sağlamalıdır .

Örneğin resim düzenleme programları veya kelime işlemciler , belgelerini dosyalara kaydederek durum kalıcılığını sağlar .

Ortogonal veya şeffaf kalıcılık

Kalıcılığın, bir programın yürütme ortamının içsel bir özelliği olarak uygulandığında " ortogonal " veya "şeffaf" olduğu söylenir . Bir dik kalıcılık ortamı almak üzere ona çalışan programlar tarafından veya bunların tasarruf bir özel işlem gerektirmez devlet .

Ortogonal olmayan kalıcılık, verilerin bir programdaki belirli yönergeler kullanılarak depoya yazılmasını ve depodan okunmasını gerektirir, bu da kalıcı bir geçişli fiil olarak kullanılmasına neden olur : Tamamlandığında, program verileri sürdürür .

Ortogonal kalıcılık ortamlarının avantajı, daha basit ve daha az hataya açık programlardır.

"Kalıcı" terimi ilk olarak Atkinson ve Morrison tarafından ortogonal kalıcılık anlamında tanıtıldı: bir program tarafından gerçekleştirilen zorunlu bir eylemden farklı olarak, verilerin bir özelliği olarak kalıcılığı vurgulamak için fiil yerine bir sıfat kullandılar. Geçişli "kalıcı" fiilinin (bir program tarafından gerçekleştirilen bir eylemi tanımlayan) kullanımı bir geri oluşumdur.

Benimseme

Ortogonal kalıcılık yaygın için işletim sistemleri kabul edilir kış uykusu ve platformu sanallaştırma gibi sistemlerin VMware ve VirtualBox'a devlet tasarrufu için.

PS-algol , Napier88 , Fibonacci ve pJama gibi araştırma prototip dilleri , programcılara avantajları ile birlikte kavramları başarıyla gösterdi.

Kalıcılık teknikleri

Sistem görüntüleri

Sistem görüntülerini kullanmak , en basit kalıcılık stratejisidir. Dizüstü bilgisayar hazırda bekletme , makinede çalışan programların herhangi bir eylemini gerektirmediğinden, bir sistem görüntüsü kullanan ortogonal kalıcılığa bir örnektir. Bir sistem görüntüsü kullanan ortogonal olmayan kalıcılığa bir örnek, tüm bir belgeyi bir dosyaya kaydetmek için belirli talimatları yürüten basit bir metin düzenleme programıdır.

Eksiklikler : Tüm sistem durumunu tutmak için yeterli RAM gerektirir. Son görüntüsü kaydedildikten sonra sistemde yapılan durum değişiklikleri, bir sistem arızası veya kapanması durumunda kaybolur. Her bir değişiklik için bir görüntü kaydetmek çoğu sistem için çok zaman alıcı olacaktır, bu nedenle görüntüler kritik sistemler için tek kalıcılık tekniği olarak kullanılmaz.

dergiler

Günlükleri kullanmak, ikinci en basit kalıcılık tekniğidir. Günlük kaydı, her biri bir sisteme uygulanmadan önce olayları bir günlüğe kaydetme işlemidir. Bu tür günlüklere günlükler denir.

Başlatmada, günlük okunur ve her olay sisteme yeniden uygulanır, böylece sistem arızası veya kapanması durumunda veri kaybı önlenir.

Bir resim düzenleme programında, örneğin bir dosyaya yazıldığında, kullanıcı komutlarının tüm "Geri Al/Yinele" geçmişi, herhangi bir zamanda düzenlenmiş bir resmin durumunu kurtarma yeteneğine sahip bir günlük oluşturur.

Günlükler, dosya sistemleri , yaygın sistemler ve "işlem günlükleri" veya "yineleme günlükleri" olarak da adlandırılan veritabanı yönetim sistemleri tarafından günlük tutulur.

Eksiklikler : Günlükler özel olarak kullanıldığında, tüm sistem olaylarının tüm (potansiyel olarak büyük) geçmişi, her sistem başlangıcında yeniden uygulanmalıdır. Sonuç olarak, dergiler genellikle diğer kalıcılık teknikleriyle birleştirilir.

Kirli yazıyor

Bu teknik, yalnızca son yazmalarından bu yana değiştirilmiş (kirli) sistem durumu bölümlerinin depolanmasına yazılır. Örneğin, gelişmiş belge düzenleme uygulamaları, bir belgenin yalnızca son kaydetmeden bu yana gerçekten değiştirilen bölümlerini kaydetmek için kirli yazmaları kullanır.

Eksiklikler: Bu teknik, bir program içinde durum değişikliklerinin durdurulmasını gerektirir. Bu, belirli depolama API çağrıları gerektirerek şeffaf olmayan bir şekilde veya otomatik program dönüştürme ile şeffaf bir şekilde elde edilir . Bu, yerel koddan daha yavaş ve hata ayıklaması daha karmaşık bir kodla sonuçlanır.

Kalıcılık katmanları

Bir programın durumunu sürdürmesini kolaylaştıran herhangi bir yazılım katmanına genel olarak kalıcılık katmanı denir. Kalıcılık katmanlarının çoğu, kalıcılığı doğrudan sağlamaz ancak temel alınan bir veritabanı yönetim sistemini kullanır .

Sistem yaygınlığı

Sistem yaygınlığı, sınırlamalarının üstesinden gelmek için yukarıda bahsedilen sistem görüntülerini ve işlem günlüklerini birleştiren bir tekniktir.

Eksiklikler: Yaygın bir sistem , tüm sistem durumunu tutmak için yeterli RAM'e sahip olmalıdır .

Veritabanı yönetim sistemleri (DBMS'ler)

DBMS'ler , yukarıda belirtilen kirli yazma ve işlem günlüğü tekniklerinin bir kombinasyonunu kullanır. Yalnızca kalıcılık sağlamakla kalmaz, aynı zamanda sorgulama, denetleme ve erişim kontrolü gibi diğer hizmetleri de sağlarlar.

Kalıcı işletim sistemleri

Kalıcı işletim sistemleri, bir çökme veya beklenmedik bir kapanmadan sonra bile kalıcı kalan işletim sistemleridir . Bu yeteneği kullanan işletim sistemleri şunları içerir:

Ayrıca bakınız

Referanslar

  1. ^ a b Atkinson, MP ; Bailey, PJ; Chisholm, KJ; Cockshott, WP ; Morrison, R. (1983). "PS-algol: Kalıcı Programlama için Bir Dil" (pdf) . Bildiriler 10. Avustralya Ulusal Bilgisayar Konferansı . 10. Avustralya Ulusal Bilgisayar Konferansı. Melbourne, Avustralya s. 70-79.
  2. ^ Balzer, Stephanie (17 Kasım 2005). "Sözleşmeli Kalıcı Nesne Programlama" (PDF) . Glasgow Üniversitesi - CS Okulu - Araştırma . ETH Zürih. Arşivlenmiş orijinal (PDF) 31 Aralık 2006 tarihinde . 21 Eylül 2015 tarihinde alındı .