Лекция № 13
Надежность программ (окончание)
Fault tolerance – быстрое (полу)автоматическое восстановление системы после отказа. Идеал - это восстановление в латентном периоде отказа, когда отказал элемент, но еще не система и отказ еще никак не проявился вовне. Из-за иерархического строения систем (система N уровня является элементом N+1 уровня) уровней отказоустойчивости (ОУ) может быть тоже несколько. Два общих принципа ОУ:
· Средства ОУ – общие для аппаратных и программных отказов; часто даже не производится детальная диагностика, где именно произошел отказ
· ОУ всегда достигается путем введения избыточности, т.е. резервирования
Фазы управления ОУ:
- Контроль исправности – обнаружение отказавших элементов
- Оценка повреждения при обнаружении неисправности
- Восстановление путем задействования резервов
Контроль: фоновый прогон тестов аппаратуры или программ; контрольные суммы кодов (в т.ч. контроль четности), дублирование аппаратуры / данных со сравнением – все это приводит к избыточности. Оценка размера области, содержащей ошибки, - в пространстве (область памяти, компоненты, устройства) или во времени, поскольку точный момент повреждения может быть неизвестен.
Виды резервирования для контроля и восстановления
1. Структурное: аппаратная избыточность – дублирование, троирование, многократное резервирование – горячий и холодный резервы.
Простое дублирование – средство контроля (рис. 13-2, а). Мажоритарная схема – троирование (рис. 13-2, б): однократная ошибка маскируется.
Рис 13-1. Некоторые варианты структурного резервирования
Горячий означает постоянно включенный и работающий резерв; холодный – включается на замену отказавшего модуля. NB: Бортовой вычислитель космичекого корабля Аполлон – троирован, у Шаттла – четверирован. Вопросы 1, 2.
2. Информационное: избыточность в представлении данных:
а) избыточное кодирование
- коды с обнаружением ошибки (четность, циклическая сумма) Вопрос 3.
- коды с исправлением ошибки (код Хэмминга, циклический код)
б) дублирование или многократное резервирование данных в памяти (на дисках)
3. Программное (program diversity):аналог структурного, но модули не аппаратные, а программные. Вопрос 4.
4. Временн о е: повторение вычислений, начиная с некоторого запомненного прошлого состояния – контрольной точки (checkpoint) или, иначе, точки восстановления (restore or recovery point). Возврат к точке восстановления называется откатом (rollback). Такой точкой является, в частности, резервная копия (backup copy) файла. Например, Word может создавать ее автоматически.
Вопросы 5 - 7.
Поддержка ОУ требует затрат памяти и дополнительного кода. Например, ПО электронных АТС фирмы AT&T на 60% состоит из программ ОУ. Временн о е резервирование, для возможности отката, требует либо периодического запоминания точки восстановления, либо запоминания проделанных действий, начиная с некоторого момента. Последнее в современных базах данных и файловых системах называется журнализацией событий; в системном журнале запоминаются все транзакции – последовательности операций при обработке одного запроса (журнал – аналог стека Undo/Redo в Word’е). A для того, чтобы противодействовать отказам во время выполнения транзакции, она делается атомарной (т.е, неделимой). Атомарная транзакция или выполняется корректно, или вовсе не выполняется.
Три примера отказоустойчивых программно-аппаратных систем