Как и при программировании с N версиями, каждый блок (включая основной и резервные блоки) реализует одну и ту же обработку, но представляет собой специфическую версию. Если при тестировании обнаруживается ошибка программного блока, последний заменяется резервным. Если последовательный ввод всех резервных блоков не позволяет устранить обнаруженную ошибку, выдается сигнал об ошибке. Таким образом, если при программировании с N версиями пропускаются все N версий. Для эффективного функционирования схемы с заменой блоков необходимы хорошо работающие проверочные тесты. Однако пока универсальные методы конструирования проверочных тестов отсутствуют.
Робастные структуры данных
При возникновении ошибки в указателе файлов последний разрушается. Если предусмотреть несколько указателей, то окажется возможным доступ к требуемым элементам файлов даже при наличии ошибки в заголовке или в указателе. Например, если указатель в точке сообщает недостоверный адрес, то можно обнаружить ошибку, разомкнув контур указателя в прямом направлении, и определить истинный адрес, перемещаясь к точке X по этому контуру в обратном направлении.
Структура высоконадежной системы, устойчивой к отказам
Рассмотрим ряд системных структур, в которых реализованы описанные выше методы обеспечения устойчивости к отказам.
Мультипроцессор, устойчивый к отказам, (FTMP)
Исходя из требования безотказной работы сети в течение 10 ч, NASA предложила спроектировать сеть ЭВМ для управления воздушным движением с интенсивностью отказа в целом не более 1 fit. На предложение откликнулись два научно-исследовательских института — Дреперовский и Станфордский, причем разработку мультипроцессора FTMP взял на себя первый. Особенность указанного мультипроцессора состоит в том, что в качестве одного единичного функционального блока (называемого триадой) рассматривается тройной комплект ресурсов, таких, как процессор и запоминающие устройства. При обмене данных между ресурсами пересылаются результаты мажоритации триад. Например, при пересылке данных из запоминающего устройства в процессор, каждый процессор считывает данные с трех запоминающих устройств, образующих триаду, и присваивает результат мажоритации данных с этих устройств. Аналогично пересылаются данные из процессора в запоминающее устройство.
|