Опасные ситуации


Нейл: Какие тяжелые проблемы были обнаружены на Земле, до того, как экспедиция отправилась в космос?

Делиман: На Земле обнаружили много проблем, даже еще в Wind River. Я бы не сказал, что все они были тяжелыми, хотя некоторые были нетривиальными.

Много лет назад, когда Stardust был еще на Земле, обнаружилась проблема с компиляторами. Она заключалась в неправильном использовании одного из регистров, когда значение, хранящееся в нем перезаписывалось до того, как оно было сохранено в постоянной памяти. Это могло привести к тому, что вся система превратилась бы в очень дорогой генератор случайных чисел — явно не то, что мы ожидаем от космического корабля. Компилятор исправили, целое множество версий, которые уже использовались, пришлось пересобрать при помощи исправленного компилятора и разослать исправления всем пользователям.

Нейл: Это было самой трудной проблемой, с которой вы столкнулись при подготовке экспедиции?

Делиман: Было две проблемы: на Mars Pathfinder приоритеты обрабатывались в обратном порядке, а на MER была проблема с файловой системой. Обе были решены одним из наиболее талантливых инженеров, с кем мне когда-либо приходилось работать. Я думаю, что лучшее что сделал Гленн Ривз (эксперт в ПО полета для экспедиции Mars Pathfinder) — это объяснил что было неправильно и как это было исправлено (http://research.microsoft.com/~mbj/Mars_Pathfinder/Authoritative_Account.html) (Замечание: Майк, который часто упоминается в этом документе — это Майк Джонс из Микрософт, Майк Делиман — cотрудник Wind River).

Нейл: Очевидно, что у вас был сумасшедший дом, когда один из аппаратов стал неуправляемым на несколько недель. Что произошло и почему потребовалось так много времени на устранение неполадок? Было ли это той проблемой, которую легко исправить как только установишь причину? Или же это была действительно сложная ситуация, требующая много усилий для ее устранения?

Делиман: Это было точно непростая задача обнаружить, что произошло в данном случае и исправить ситуацию.

Было много аспектов при диагностике и решении проблемы со Спиритом, которая случилась в середине января. Много чего могло произойти: скачок напряжения, космическая радиация, короткое замыкание, проблемы с тепловыделением, механические неполадки, связанные с пуском или приземлением. Перед нами стояла задача исключить все маловероятные варианты, обнаружить наиболее вероятные, сократить их перечень до разумного количества и затем исследовать все, что осталось. Как только бы мы обнаружили проблему, мы бы ее воспроизвели в лаборатории и нам бы оставалось только изготовить и протестировать "лекарство".

Хотя я напрямую не был связан с исправлением данной проблемы, я помогал команде насколько мог. Например, меня позвали на помощь буквально через 20 минут после приземления Оппотьюнити на Марс. Здесь потребовалось исследование исходного когда и общение с экспертами из трех временных зон: Япония, Калифорния и кратер Гусева (место, куда приземлился Спирит), а также приходилось постоянно иметь при себе все необходимые данные. Я работал в выходные, просыпался по три раза в день, чтобы связаться с необходимыми людьми, прерывался только чтобы поесть, поспать, принять душ и позаботиться о своих собачках.

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

Нейл: Оказал ли космический корабль какое-либо влияние на операционную систему? То, что вы изучили, работая с НАСА и лабораторией реактивных двигателей, как-нибудь отразилось в исходном коде?

Делиман: Некоторые вещи, которые мы исправляли для космических экспедиций, оказались и в базовом пакете. Например, вместе с несколькими инженерами из поддержки Wind River, мы исправили некоторые математические функции для космических кораблей; полученные подпрограммы были настолько же точны, как и версии стандарта IEEE 754, но работали немного быстрее.

Нейл: Как вы думаете, НАСА когда-нибудь перейдет на операционные системы с открытым исходным кодом для своих космических экспедиций?

Делиман: Я бы не исключал такой возможности, но дело в том, что когда ты работаешь с аппаратурой, стоимостью милиарды долларов и тратишь на это множество человеко-лет, ты хочешь работать с тем, что ты хорошо знаешь. Например, посмотрите на процессор Rad6000. Это 32-битный чип, который работает на частоте 20 мегагерц, и который был вершиной технологической мысли где-то в 1990-х годах. Он может использовать ограниченный объем памяти, и эта память является довольно медленной по сегодняшним меркам. Это в лучшем случае реликвия, по сравнению с сегодняшними процессорами, которые работают в сотни раз быстрее.

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

Advertisements
Запись опубликована в рубрике космос. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s