Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Ортогональная или прозрачная стойкость [ править ]

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

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

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

Принятие [ править ]

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

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

Техники настойчивости [ править ]

Системные образы [ править ]

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

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

Журналы [ править ]

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

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

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

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

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

Грязные записи [ править ]

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

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

Слои стойкости [ править ]

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

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

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

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

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

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

Постоянные операционные системы [ править ]

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

  • KeyKOS
  • ЭРОС , преемник KeyKOS
  • CapROS , доработки EROS
  • Койотос , преемник EROS
  • Multics с одноуровневым магазином
  • Фантом
  • IBM System / 38
  • Grasshopper OS [1]
  • ОС Lua
  • tahrpuppy-6.0.5

См. Также [ править ]

  • Постоянные данные
  • Постоянная структура данных
  • Постоянный идентификатор
  • Постоянная память
  • Копирование при записи
  • CRUD
  • Объекты данных Java
  • Java Persistence API
  • Системная распространенность
  • Ортогональность
  • Объект данных службы
  • Снимок (компьютерное хранилище)

Ссылки [ править ]

  1. Balzer, Стефани (17 ноября 2005 г.). «Контрактное программирование постоянных объектов» (PDF) . Университет Глазго - Школа CS - Исследования . ETH Zürich. Архивировано из оригинального (PDF) 31 декабря 2006 года . Проверено 21 сентября 2015 года .