Настойчивость (информатика)
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2014 г. ) |
В информатике процесс постоянство относится к характеристике состояния системы, которая переживает (сохраняется дольше, чем) , который ее создал. На практике это достигается за счет сохранения состояния в виде данных в компьютерном хранилище данных . Программы должны передавать данные на устройства хранения и обратно, а также обеспечивать сопоставление собственного языка программирования структур данных со структурами данных устройств хранения. [1] [2]
программы редактирования изображений или текстовые процессоры Например, обеспечивают сохранение состояния , сохраняя свои документы в файлы .
Ортогональное или прозрачное постоянство
[ редактировать ]Постоянство называется « ортогональным » или «прозрачным», если оно реализовано как внутреннее свойство среды выполнения программы. Ортогональная персистентная среда не требует каких-либо конкретных действий со стороны работающих в ней программ для получения или сохранения своего состояния .
Неортогональное сохранение требует, чтобы данные записывались и считывались в хранилище и из него с использованием определенных инструкций в программе, в результате чего слово persist используется в качестве переходного глагола: По завершении программа сохраняет данные .
Преимущество ортогональных сред персистентности — это более простые и менее подверженные ошибкам программы. [ нужна ссылка ]
Термин «стойкий» впервые был введен Аткинсоном и Моррисоном. [1] в смысле ортогонального постоянства: они использовали прилагательное, а не глагол, чтобы подчеркнуть постоянство как свойство данных, в отличие от императивного действия, выполняемого программой. Употребление переходного глагола «персистировать» (описывающего действие, выполняемое программой) является обратным образованием.
Принятие
[ редактировать ]Ортогональное постоянство широко применяется в операционных системах для спящего режима и в системах виртуализации платформ, таких как VMware и VirtualBox, для сохранения состояния.
Исследовательские языки-прототипы, такие как PS-algol , Napier88 , Fibonacci и pJama, успешно продемонстрировали программистам эти концепции и их преимущества.
Методы настойчивости
[ редактировать ]Системные изображения
[ редактировать ]Использование системных образов — самая простая стратегия сохранения. ноутбука Спящий режим является примером ортогонального сохранения с использованием образа системы, поскольку он не требует каких-либо действий со стороны программ, работающих на компьютере. Примером неортогонального сохранения с использованием системного образа является простая программа редактирования текста, выполняющая определенные инструкции для сохранения всего документа в файл.
Недостатки : Требуется достаточно оперативной памяти для хранения всего состояния системы. Изменения состояния, внесенные в систему после сохранения ее последнего образа, теряются в случае сбоя или завершения работы системы. Сохранение образа для каждого отдельного изменения заняло бы слишком много времени для большинства систем, поэтому изображения не используются в качестве единственного метода сохранения для критических систем.
Журналы
[ редактировать ]Использование журналов — второй простейший метод сохранения. Ведение журнала — это процесс хранения событий в журнале перед применением каждого из них в системе. Такие журналы называются журналами.
При запуске журнал считывается, и каждое событие повторно применяется к системе, что позволяет избежать потери данных в случае сбоя или завершения работы системы.
Вся история «Отменить/Повторить» пользовательских команд в программе редактирования изображений, например, при записи в файл, представляет собой журнал, способный восстановить состояние отредактированного изображения в любой момент времени.
Журналы используются журналируемыми файловыми системами , распространенными системами и системами управления базами данных , где их также называют «журналами транзакций» или «журналами повторного выполнения».
Недостатки : когда используются исключительно журналы, вся (потенциально большая) история всех системных событий должна заново применяться при каждом запуске системы. В результате журналы часто комбинируются с другими методами сохранения.
Грязно пишет
[ редактировать ]Этот метод заключается в записи в хранилище только тех частей состояния системы, которые были изменены (загрязнены) с момента их последней записи. Например, сложные приложения для редактирования документов будут использовать грязную запись для сохранения только тех частей документа, которые были фактически изменены с момента последнего сохранения.
Недостатки: этот метод требует, чтобы изменения состояния перехватывались внутри программы. Это достигается непрозрачным способом, требующим определенных вызовов API хранилища, или прозрачным способом с автоматическим преобразованием программы . В результате код получается медленнее, чем собственный код, и его сложнее отлаживать.
Слои персистентности
[ редактировать ]Любой программный уровень , который облегчает программе сохранение своего состояния, обычно называется уровнем персистентности. Большинство уровней сохраняемости не обеспечивают постоянство напрямую, а используют базовую систему управления базами данных .
Распространенность системы
[ редактировать ]Преобладание системы — это метод, который объединяет упомянутые выше образы системы и журналы транзакций для преодоления их ограничений.
Недостатки: распространенная система должна иметь достаточно оперативной памяти для хранения всего состояния системы.
Системы управления базами данных (СУБД)
[ редактировать ]СУБД используют комбинацию методов грязной записи и журналирования транзакций, упомянутых выше. Они обеспечивают не только постоянство, но и другие услуги, такие как запросы, аудит и контроль доступа.
Постоянные операционные системы
[ редактировать ]Постоянные операционные системы — это операционные системы , которые остаются постоянными даже после сбоя или неожиданного завершения работы. К операционным системам, использующим эту возможность, относятся
- КейКОС
- EROS , преемник KeyKOS
- CapROS , версии EROS
- Койотос , преемник EROS
- Multics с одноуровневым хранилищем
- Фантом
- IBM Система/38
- IBM я
- ОС Кузнечик [1]
- Луа ОС
- tarpuppy-6.0.5
См. также
[ редактировать ]- Постоянные данные
- Постоянная структура данных
- Постоянный идентификатор
- Постоянная память
- Копирование при записи
- CRUD
- Объекты данных Java
- API сохранения Java
- Распространенность системы
- Ортогональность
- Объект сервисных данных
- Снимок (компьютерное хранилище)
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Аткинсон, член парламента ; Бейли, ПиДжей; Чисхолм, К.Дж.; Кокшотт, ВП ; Моррисон, Р. (1983). «PS-алгол: язык постоянного программирования» (PDF) . Материалы 10-й Австралийской национальной компьютерной конференции . 10-я Австралийская национальная компьютерная конференция. Мельбурн, Австралия. стр. 70–79.
- ^ Бальцер, Стефани (17 ноября 2005 г.). «Программирование постоянных объектов по контракту» (PDF) . Университет Глазго – Школа компьютерных исследований . ETH Цюрих. Архивировано из оригинала (PDF) 31 декабря 2006 г. Проверено 21 сентября 2015 г.