Какое ТЕБЕ дело до того, что думают другие? - Фейнман Ричард Филлипс. Страница 48
Короче говоря, надежность аппаратного обеспечения гарантируется наличием четырех, в сущности, независимых идентичных компьютерных систем. Везде, где это возможно, каждый сенсор также имеет несколько копий — обычно четыре, — и каждая копия передает информацию во все четыре серии компьютеров. Если входные сигналы сенсоров не согласуются между собой, то в качестве действующего входного сигнала используется либо определенная средняя величина, либо отбор по принципу большинства, в зависимости от обстоятельств. Поскольку каждый компьютер видит все копии сенсоров, все входные данные и все алгоритмы, согласно которым работает каждый из четырех компьютеров, одинаковы, то результаты, которые получает каждый компьютер, должны быть идентичны на каждом этапе его работы. Время от времени их сравнивают, но, поскольку компьютеры работают с несколько разными скоростями, подключается система остановок и ожиданий в течение определенного времени, после чего и проводится сравнение. Если один из компьютеров выдает не согласующиеся с остальными данные или вообще запаздывает с выдачей ответа, ответ трех других компьютеров, в случае их согласия, считается правильным, и компьютер, который ошибся, изолируется от остальной системы. Теперь, если из строя выйдет другой компьютер, по суждению двух оставшихся, то и он исключается из системы, а полет прекращается: осуществляется возвращение на место приземления, которое происходит под управлением двух оставшихся компьютеров. Совершенно ясно, что это система с резервированием, так как выход из строя одного компьютера не оказывает никакого влияния на выполнение задания. И наконец, в качестве дополнительной гарантии безопасности, существует пятый независимый компьютер, в памяти которого хранятся только программы подъема и спуска и который способен управлять спуском, даже если из строя выйдут более, чем два основных компьютера.
В памяти основных компьютеров не хватает места для всех программ подъема, спуска и полезной нагрузки на весь полет, поэтому астронавты четыре раза загружают память с кассет.
Из-за огромных усилий, необходимых для замены программного обеспечения для такой сложной системы и проверки новой системы, аппаратное обеспечение не менялось с момента создания системы транспортировки шаттла, что произошло 15 лет назад. Существующее аппаратное обеспечение устарело — например, память старого типа на ферритовых сердечниках. Становится все сложнее и сложнее найти производителей, которые могли бы поставить такие старые компьютеры, которые были бы одновременно надежными и достаточно высококачественными. Современные компьютеры более надежны и работают гораздо быстрее. Это упрощает схемы и позволяет выполнить во много раз больший объем работы. Современные компьютеры не потребовали бы столь многочисленной загрузки с кассет, так как обладают гораздо большим объемом памяти.
Программное обеспечение проверяется очень тщательно по принципу «снизу вверх». Прежде всего, проверяется каждая вновь созданная строка программы; затем проверяются разделы программы (модули), выполняющие специальные функции. Масштаб мало-помалу увеличивается, пока все новые изменения не будут включены в полную систему и проверены. Этот полный выход считается окончательным, только что созданным продуктом. Но абсолютно независимо работает группа проверки, которая дает советы группе по разработке программного обеспечения и испытывает программы так, как это делал бы покупатель, которому поставили данный продукт. Существует дополнительная проверка при использовании новых программ в имитаторах полета и т.п. Ошибка на этой стадии проверки испытаний считается очень серьезной и ее происхождение изучается очень тщательно, чтобы избежать подобных ошибок в будущем. Подобные ошибки, совершенные по неопытности, были обнаружены лишь шесть раз за все время программирования и изменения программ (для новых или измененных нагрузок). Они следовали такому принципу: вся эта проверка не имеет никакого отношения к программе безопасности; это лишь испытание этой самой безопасности при проверке, которая происходит для предотвращения катастрофы. О безопасности полета можно судить исключительно по тому, насколько хорошо программы ведут себя во время испытаний. Если здесь произойдет отказ, то он вызовет серьезную озабоченность.
В итоге хотелось бы заметить, что система проверки программного обеспечения компьютеров действительно показывает себя как высококачественная. Судя по всему, там нет места постепенному самообману путем снижения норм, что весьма характерно для систем безопасности твердотопливных ракета-носителей и основных двигателей шаттла. Для вящей убедительности добавлю, что руководство недавно предлагало прекратить такие сложные и дорогие испытания за их ненадобностью в последнее время истории запусков шаттла. Подобным предложениям нужно сопротивляться, потому что люди, их выдвигающие, не представляют взаимные незаметные влияния и источники ошибок, которые могут появиться даже из-за незначительных изменений программы в той или иной ее части. Постоянно возникают просьбы об изменении программы по мере предложения пользователями новых полезных нагрузок и появления новых требований. Любые изменения обходятся дорого, так как они требуют полной проверки. Надлежащий способ экономии денег — это сокращение количества требуемых изменений, а не качества испытаний каждого из них.
Можно также добавить, что эту сложную систему испытаний можно было бы весьма усовершенствовать, оснастив современным аппаратным обеспечением и методиками написания программ. Если бы у НАСА появился любой конкурент вовне, то у него были бы все преимущества, если бы он начал с оснащения новым оборудованием. Сейчас НАСА стоит серьезно подумать над вопросом, не является ли современное аппаратное обеспечение разумной идеей.
И наконец, возвращаясь к сенсорам и исполнительным органам системы авиационной электроники, мы обнаруживаем, что отношение к системному отказу и надежности далеко не так хорошо, как в случае с компьютерными системами. Например, была обнаружена проблема, связанная с тем, что из строя порой выходят температурные сенсоры. Однако восемнадцать месяцев спустя в системе по-прежнему использовались те же сенсоры, они все так же иногда выходили из строя, и это происходило до тех пор, пока запуск шаттла не отменили по причине одновременного выхода из строя двух сенсоров. И даже в следующем полете этот ненадежный сенсор был использован снова. Кроме того, возникают сомнения в надежности систем управления реакцией, реактивными струями ракет, которые используются для переориентации и управления в полете. Присутствует значительное излишество, но существует и длинная история отказов, ни один из которых не был достаточно серьезным, чтобы оказать значительное влияние на полет. Действие реактивных струй находится под контролем сенсоров: если струя не выстрелит, то компьютеры выберут для этой цели другую струю. Но они созданы не для того, чтобы не срабатывать, поэтому данную проблему нужно решать.
Если мы хотим придерживаться разумного графика запуска шаттлов, то очень часто возникает ситуация, когда техническую подготовку шаттла не удается провести достаточно быстро, чтобы удовлетворить требованиям изначально консервативных критериев аттестации, которые ставят своей целью гарантировать очень надежный летательный аппарат. В подобных ситуациях критерии безопасности несколько изменяются — причем часто выдвигаются на первый взгляд логичные аргументы, — так, чтобы полеты по-прежнему можно было аттестовать вовремя. Таким образом, шаттл летает в относительно небезопасном состоянии, и вероятность его отказа имеет порядок, равный одному проценту. (Более точную цифру назвать сложно.)
Официальное руководство, с другой стороны, утверждает, что, по их мнению, вероятность отказа в тысячу раз меньше. Одной из причин такой уверенности может быть попытка убедить правительство в совершенстве и успешности НАСА, чтобы гарантировать финансовые вложения. Другая причина, быть может, состоит в том, что они искренне верят в истинность этого, демонстрируя почти невероятное отсутствие передачи информации между менеджерами и работающими у них инженерами.