stringtranslate.com

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

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

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

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

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

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

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

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

Принятие

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

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

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

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

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

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

Журналы

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

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

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

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

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

Грязно пишет

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

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

Слои персистентности

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

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

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

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

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

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

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

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

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

Рекомендации

  1. ^ Аб Аткинсон, член парламента ; Бейли, ПиДжей; Чисхолм, К.Дж.; Кокшотт, ВП ; Моррисон, Р. (1983). «PS-алгол: язык постоянного программирования» (PDF) . Материалы 10-й Австралийской национальной компьютерной конференции . 10-я Австралийская национальная компьютерная конференция. Мельбурн, Австралия. стр. 70–79.
  2. Бальцер, Стефани (17 ноября 2005 г.). «Программирование постоянных объектов по контракту» (PDF) . Университет Глазго – Школа компьютерных исследований . ETH Цюрих. Архивировано из оригинала (PDF) 31 декабря 2006 г. Проверено 21 сентября 2015 г.