Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Устойчивость к сбоям




 

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

Можно предположить, что средства отказоустойчивости не должны включаться в систему, которая разрабатывается на основе методов минимизации ошибок. Если в системе нет ошибок, то, казалось бы, нет и причин для системных отказов. Но "без ошибок" не означает "безотказный". "Без ошибок" только означает, что программа соответствует своей спецификации. Спецификация требований сама может содержать ошибки или упущения, требования же могут базироваться на неправильных предположениях о системном окружении. И конечно, никогда нельзя утверждать, что система полностью лишена ошибок. В системах, к которым предъявляются высочайшие требования безотказности и работоспособности, явно необходима поддержка устойчивости к отказам.

В проблеме безотказности выделяют четыре аспекта.

 

1. Обнаружение ошибок и сбоев. Система должна обнаруживать "сбойные" состояния, которые могут привести к ее отказу.

2. Локализация сбоев. Определение той части системы, в которой возникли сбои.

3. Восстановление системы. После возникновения сбоя система должна вернуться в работоспособное состояние. Этого можно достичь исправлением сбойного состояния (прямое устранение ошибки) или возвращением системы к "безопасному" состоянию (ретроспективное устранение ошибки).

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

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

 

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

2. Отказоустойчивые системные архитектуры. Это архитектуры аппаратных и программных средств, обеспечивающие устойчивость к сбоям. Такие архитектуры включают резервирование аппаратных и программных средств и имеют блок анализа сбоев, который обнаруживает и устраняет ошибки. Этот подход к обеспечению отказоустойчивости рассматривается в разделе 18.3.

 

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

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...