Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FINAL.doc
Скачиваний:
80
Добавлен:
04.06.2015
Размер:
1.29 Mб
Скачать

Обработка исключительных ситуаций

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

События вызывающие исключительные ситуации в программном модуле принято разделять на три класса [109]:

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

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

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

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

Контрольная точка и перезапуск

Для моноверсионных моделей повышения отказоустойчивости существует несколько методов восстановления при ошибке. Наиболее часто используемым является метод контрольных точек и перезапуска [110].

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

Рисунок 1.3. Логическое представление метода контрольной точки и перезапуска

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]