stringtranslate.com

Настойчивость (информатика)

В информатике персистентность относится к характеристике состояния системы, которая переживает (сохраняется дольше), чем процесс , который ее создал. На практике это достигается путем сохранения состояния в виде данных в хранилище данных компьютера . Программы должны передавать данные на устройства хранения и с них и должны предоставлять сопоставления из структур данных собственного языка программирования в структуры данных устройства хранения. [1] [2]

Например, программы редактирования изображений или текстовые процессоры достигают сохранения состояния путем сохранения своих документов в файлах .

Ортогональное или прозрачное сохранение

Сохранение называется « ортогональным » или «прозрачным», когда оно реализовано как внутреннее свойство среды выполнения программы. Среда ортогонального сохранения не требует никаких специальных действий от программ, работающих в ней, для извлечения или сохранения их состояния .

Неортогональное сохранение требует, чтобы данные записывались в хранилище и считывались из него с использованием определенных инструкций в программе, что приводит к использованию глагола сохранять как переходного: по завершении программа сохраняет данные .

Преимущество ортогональных сред сохранения заключается в более простых и менее подверженных ошибкам программах. [ необходима цитата ]

Термин «persistent» был впервые введен Аткинсоном и Моррисоном [1] в смысле ортогональной персистентности: они использовали прилагательное, а не глагол, чтобы подчеркнуть персистентность как свойство данных, в отличие от императивного действия, выполняемого программой. Использование переходного глагола «persist» (описывающего действие, выполняемое программой) является обратной конструкцией.

Принятие

Ортогональное сохранение широко применяется в операционных системах для спящего режима и в системах виртуализации платформ , таких как VMware и VirtualBox, для сохранения состояния.

Исследовательские прототипы языков, такие как PS-algol , Napier88 , Fibonacci и pJama, успешно продемонстрировали концепции и преимущества для программистов.

Методы настойчивости

Системные образы

Использование системных образов — простейшая стратегия сохранения. Гибернация ноутбука — пример ортогонального сохранения с использованием системного образа, поскольку она не требует никаких действий со стороны программ, работающих на машине. Примером неортогонального сохранения с использованием системного образа является простая программа редактирования текста, выполняющая определенные инструкции для сохранения всего документа в файл.

Недостатки : Требуется достаточно оперативной памяти для хранения всего состояния системы. Изменения состояния, внесенные в систему после сохранения ее последнего образа, теряются в случае сбоя или выключения системы. Сохранение образа для каждого отдельного изменения было бы слишком трудоемким для большинства систем, поэтому образы не используются в качестве единственного метода сохранения для критических систем.

Журналы

Использование журналов — вторая простейшая техника сохранения. Журналирование — это процесс сохранения событий в журнале перед тем, как каждое из них будет применено к системе. Такие журналы называются журналами.

При запуске журнал считывается, и каждое событие повторно применяется к системе, что позволяет избежать потери данных в случае сбоя или завершения работы системы.

Например, вся история пользовательских команд «Отменить/Повторить» в программе редактирования изображений, записанная в файл, представляет собой журнал, позволяющий восстановить состояние отредактированного изображения в любой момент времени.

Журналы используются в файловых системах журналирования , распространенных системах и системах управления базами данных , где их также называют «журналами транзакций» или «журналами повторного выполнения».

Недостатки : Когда журналы используются исключительно, вся (потенциально большая) история всех системных событий должна быть повторно применена при каждом запуске системы. В результате журналы часто объединяются с другими методами сохранения.

Грязные записи

Этот метод заключается в записи в хранилище только тех частей состояния системы, которые были изменены (являются грязными) с момента их последней записи. Например, сложные приложения для редактирования документов будут использовать грязные записи для сохранения только тех частей документа, которые были фактически изменены с момента последнего сохранения.

Недостатки: Этот метод требует перехвата изменений состояния в программе. Это достигается непрозрачным способом, требуя определенных вызовов API хранилища или прозрачным способом с автоматическим преобразованием программы . Это приводит к коду, который медленнее собственного кода и сложнее для отладки.

Устойчивые слои

Любой программный слой , который упрощает сохранение состояния программы, обычно называется слоем сохранения. Большинство слоев сохранения не достигают сохранения напрямую, а используют базовую систему управления базами данных .

Распространенность системы

Распространенность системы — это метод, объединяющий образы системы и журналы транзакций, упомянутые выше, для преодоления их ограничений.

Недостатки: Распространенная система должна иметь достаточно оперативной памяти для хранения всего состояния системы.

Системы управления базами данных (СУБД)

СУБД используют комбинацию грязных записей и методов журналирования транзакций, упомянутых выше. Они обеспечивают не только сохранение, но и другие услуги, такие как запросы, аудит и контроль доступа.

Постоянные операционные системы

Устойчивые операционные системы — это операционные системы , которые остаются устойчивыми даже после сбоя или неожиданного выключения. Операционные системы, которые используют эту возможность, включают

Смотрите также

Ссылки

  1. ^ ab Atkinson, MP ; Bailey, PJ; Chisholm, KJ; Cockshott, WP ; Morrison, R. (1983). "PS-algol: язык для постоянного программирования" (PDF) . Труды 10-й Австралийской национальной компьютерной конференции . 10-я Австралийская национальная компьютерная конференция. Мельбурн, Австралия. стр. 70–79.
  2. ^ Balzer, Stephanie (17 ноября 2005 г.). "Contracted Persistent Object Programming" (PDF) . University of Glasgow - School of CS - Research . ETH Zürich. Архивировано из оригинала (PDF) 31 декабря 2006 г. . Получено 21 сентября 2015 г. .