"Валерий Аджиев "Мифы о безопасном ПО: уроки знаменитых катастроф" [V]" - читать интересную книгу автора

Бортовым Компьютером на основе информации от активной авигационной Системы
(IRS 2). Часть этой информации была в принципе некорректной: то, что
интерпретировалось как полетные данные, на самом деле являлось
диагностической информацией встроенного компьютера системы IRS 2;
* встроенный компьютер IRS 2 передал некорректные данные, потому что
диагностировал нештатную ситуацию, "поймав" исключение (exception),
выброшенное одним из модулей программного обеспечения; * при этом Бортовой
Компьютер не мог переключиться на резервную систему IRS 1, так как она уже
прекратила функционировать в течение предшествующего цикла (занявшего 72
мсек.) по той же причине, что и IRS 2;
* исключение, "выброшенное" одной из программ IRS, явилось следствием
выполнения преобразования данных из 64-разрядного формата с плавающей
точкой в 16-разрядное целое со знаком, что привело к "Operand Error"; *
ошибка произошла в компоненте ПО, предназначенном исключительно для
выполнения "регулировки" Инерциальной Платформы. Причем что звучит
парадоксально, если не абсурдно этот программный модуль выдает значимые
результаты только до момента H0 + 7 сек. отрыва ракеты со стартовой
площадки. После того, как ракета взлетела, никакого влияния на полет
функционирование данного модуля оказать не могло; * однако, "функция
регулировки" действительно должна была (в соответствии с установленными
для нее требованиями) действовать еще 50 сек. после инициации "полетного
режима" на шине авигационной Системы (момент H0-3 сек.), что она с
усердием дурака, которого заставили богу молиться, и делала; * ошибка
"Operand Error" произошла из-за неожиданно большой величины BH (Horizontal
Bias горизонтальный наклон), посчитанной внутренней функцией на основании
величины "горизонтальной скорости", измеренной находящимися на Платформе
датчиками. Величина BH служила индикатором точности позиционирования
Платформы; * величина BH оказалась много больше, чем ожидалось потому, что
траектория полета Ariane 5 на ранней стадии существенно отличалась от
траектории полета Ariane 4 (где этот программный модуль использовался
ранее), что и привело к значительно более высокой "горизонтальной
скорости".

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

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


Причины и истоки аварии

Прежде всего проследим, откуда взялось первоначальное требование на
продолжение выполнения операции регулировки после взлета ракеты.
Оказывается, оно было заложено более чем за 10 лет до рокового события,
когда проектировались еще ранние модели серии Ariane. При некотором