Обработка сбоев аппаратуры

 

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

Наконец, еще один интересующий нас класс ошибок – сбои аппара­туры. В большинстве случаев они обрабатываются самой ап­паратурой, либо за счет резервирования, как показано в подразд. 2.2.2, либо с помо­щью встро­енных систем функционального контроля, как показано в под­разд. 4.3. Некоторые сбои, однако, нель­зя обработать только аппаратными средствами, они тре­буют помощи со стороны программного обеспечения. Ниже приводится список воз­можностей, которые часто бывают необхо­димы в программных сис­темах для борьбы со сбоями аппаратуры.

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

2. Восстановление памяти. Если обнаруженный случайный сбой ап­паратуры вызывает искажение области основной памяти и эта область со­держит статические данные (например, команды объ­ектной программы), то последствия сбоя можно ликвидировать, повторно загрузив эту область памяти.

3. Динамическое изменение конфигурации. Если аппаратная под­сис­тема, такая как центральный процессор, канал ввода-вывода, блок основ­ной па­мяти или устройство ввода-вывода, выходит из строя, работоспособ­ность системы можно сохранить, динамически исключая неисправ­ное уст­ройство из набора ресурсов системы.

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

5. Контрольная точка/рестарт. Контрольная точка – это перио­диче­ски обновляемая копия состояния прикладной программы или всей сис­темы. Если происходит отказ аппаратуры, такой как ошиб­ка ввода-вы­вода, сбой памяти или питания, программа может быть запущена повторно с последней контрольной точки.

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

7. Регистрация ошибок. Все сбои аппаратуры, с которыми уда­лось справиться, должны регистрироваться во внешнем файле, что­бы обслужи­вающий персонал мог получать сведения о постепенном износе устройств.