Slide 3&4: Что такое ‘bug’?




Скачать 384.38 Kb.
PDF просмотр
НазваниеSlide 3&4: Что такое ‘bug’?
страница1/34
Дата конвертации16.10.2012
Размер384.38 Kb.
ТипДокументы
  1   2   3   4   5   6   7   8   9   ...   34
Slide 2: О чем эта лекция
Я не собираюсь читать вам лекцию на тему, что надо проверять возвращаемые из malloc 
значения, проверять форматные строки в printf и т.д. и т.п. Вы и так уже это все слышали 
миллион раз, и повторение в миллион первый вряд ли что изменит. Вместо этого я 
немного расскажу к чему это все приводит, а также поделюсь некоторыми не столь 
известными сведениями о том, какие бывают ошибки, что с ними делать, чего иногда 
лучше не делать. Ну и еще немного мы коснемся смежных областей - там тоже бывают 
ошибки.
А теперь немного истории. В английском языке для термина 'ошибка' есть 2 разных слова 
- это слово error (оно обозначает ошибку в самом общем смысле), а есть слово 'bug' - это 
вполне конкретная разновидность программных ошибок.
Откуда же пошел этот термин?

Slide 3&4: Что такое ‘bug’?
9 Сентября 1947г. Гарвардский университет. Журнал обслуживания компьютера Марк II. 
Уже ставшая классикой строка с прилепленной скотчем молью, отметкой времени 15:45 и 
записью - "Реле №70, Панель F (моль) в реле" и гордая пометка внизу - "Первый случай 
реального бага"
Очевидно, что термин 'bug' зародился не тут - его бы не использовали в сочетании 
'реальный баг'. Этот термин появился более чем за 100 лет до истории о моли-в-реле. 

Даже Томас Эдисон использовал этот термин в письме Теодору Пускасу (цитата из 
'Ельского сборника цитат' 2006г):
'Bugs' -- так называют маленький сбой или затруднение -- покажет себя, и могут 
потребоваться месяцы интенсивных наблюдений, изучений и упорной работы, перед тем 
как достигнуть безусловного успеха или неудачи.
Это слово давным-давно использовалось для обозначения Монстров, и те, кто проводил 
недели и месяцы за отладкой своего (а тем паче чужого) кода, должны это очень хорошо 
понимать.
Со времен Марка II bug'и несколько подросли, и теперь это уже не моль, а нечто такое -

Итак, давайте познакомимся с классикой bug'ов. Нечто по слухам, хорошо известное, но 
почти никто не знает реальной истории.

Slide 5: Mariner 1
22 Июля 1962г, первый космический корабль NASA Mariner отправился с миссией на 
Венеру. Он счастливо стартовал с Мыса Канаверал, но буквально через несколько минут 
начал уходить с курса. Системе управления не удалось исправить траекторию, и наземная 
команда так же не смогла исправить ее вручную.
Так как ракета свернул в сторону Североатлантической океанской трассы, офицер, 
отвечающий за безопасность, сделал единственное, что он мог сделать: взорвать аппарат. 
Через четыре минуты и 55 секунд после начала миссии Mariner 1 был взорван.
NASA уже и так по черному завидовала СССР с его Спутником, и инцидент с Mariner стал 
еще одним международным позором для агентства. Расследование этой катастрофы 
показало то, что НАСА назвала "неправильной эксплуатации маяков оборудования Atlas» 
- хотя позже выяснилось, что реальной причиной была ошибка в одном знаке пунктуации, 
что вызвало фатальную ошибку в программном обеспечении.
По широко распространенному мнению это была замена запятой на точку в операторе DO 
FORTRAN'а, но на самом деле это была черта над знаком радиуса (точнее производной от 
радиуса, т.е. скорости). Черта эта обозначала оператор усреднения. Программист, 
переносивший уравнения из тетради, где они были написаны, либо не обратил внимания 
на этот знак, либо вообще не знал, что это такое.
В результате система управления получилась крайне не устойчивая, и малейшие 
колебания скорости (так как усреднение отсутствовало) вызывали немедленную мощную 
реакцию со стороны корректирующих двигателей. 
Результат - $18.2M отправились на ветер.
Это была далеко не последняя авария в космосе, связанная с софтом. Иногда причины 
аварий были просто анекдотичными.

Slide 6: Mars Climate Orbiter 
Аппарат для исследования климата Марса (Mars Climate Orbiter) является частью 
программы Mars Surveyor по изучению и картографированию Марса. Ожидалось, что 
программа Mars Surveyor продлится в течение 10 лет и в рамках программы будет 
запускаться одна экспедиция в год. Первыми двумя экспедициями были миссии аппаратов 
Mars Pathfinder и Mars Global Surveyor в 1996 году. Аппарат Mars Climate Orbiter был 
запущен 11 декабря 1998 года. Следом за ним был также запущен Mars Polar Lander - 3 
января 1999. Оба аппарата были потеряны вскоре после того, как они достигли красной 
планеты. Эти два космических корабля стоили NASA около 327,6 миллиона долларов, 
потраченных на их создание и функционирование. Эти аварии заставили NASA 
пересмотреть свои цели и методы в Марсианской программе, чтобы быть уверенными в 
успехе будущих миссий. Причину аварии Mars Polar Lander определить все еще нельзя. 
Однако причина потери Mars Climate Orbiter выяснена, поэтому мы сконцентрируем наше 
исследование на этом аппарате. 
Mars Climate Orbiter был запущен 11 декабря 1998 года с помощью ракеты-носителя Delta 
11
 с космодрома на мысе Канаверал (Canaveral) во Флориде. После девяти с половиной 
месяцев космического полета 23 сентября 1999 года, его планировалось вывести на 
орбиту вокруг Марса. Однако, когда пришло назначенное время, что-то произошло. 
Около 2:00 утра по летнему тихоокеанскому времени, аппарат включил главный 
двигатель для выхода на орбиту вокруг планеты. Запуск двигателя начался как 
планировалось, за пять минут до того, как аппарат оказался за планетой (если смотреть с 
Земли). Управление полетом не зафиксировало сигнала, когда ожидалось, что аппарат 
должен был выйти из-за планеты35.
Mars Climate Orbiter разрабатывался объединенной командой инженеров и ученых в двух 
местах - Лаборатории реактивных двигателей (Jet Propulsion Laboratory, JPL), 
расположенной в Пасадене (Pasadena), штат Калифорния, и на заводе Lockheed Martin 
Astronautics, LMA в Денвере, штат Колорадо. Завод LMA был ответственен за 
планирование и разработку Mars Climate Orbiter с точки зрения интеграции и 
тестирования полетных систем, а также за операцию запуска. Лаборатория JPL несла 
ответственность за управление проектом, за управление разработкой космического 
аппарата и приборов, за системотехнику, за планирование миссии, навигацию, разработку 
операционной системы миссии, разработку наземной системы сбора данных и гарантии 
безопасности36. 
В ходе девяти с половиной месяцев полета наземные службы отслеживали и сравнивали 
наблюдаемую траекторию аппарата с расчетной. Также наземные службы проверяли все 
события, происходящие на борту Mars Climate Orbiter. Одним из таких событий было 
уменьшение углового момента (Angular Momentum Desaturation, AMD). Событие AMD 
возникало, когда аппарат запускал двигатели малой тяги для устранения углового 
момента, накопившегося в его маховиках. В основе своей - это калибровочный маневр для 
поддержания функционирования системных компонентов в заданном диапазоне. Когда 
возникало событие AMD, происходила следующая последовательность событий: 
1. Аппарат посылал значимые данные на наземную станцию. 
2. Данные обрабатывались программным модулем, называвшимся SM-FORCE. 
3. Результаты работы модуля SM-FORCE помещались в файл, называемый файл 
AMD. 
4. Данные файла AMD использовались для вычисления изменения скорости аппарата. 
5. Вычисленное значение изменения скорости использовалось для моделирования 
траектории корабля. 
  1   2   3   4   5   6   7   8   9   ...   34

Похожие:

Slide 3&4: Что такое ‘bug’? iconДоктор берест
Знаете ли вы, что такое береза? Не торопитесь с ответом – эта книга убедит вас, что такое
Slide 3&4: Что такое ‘bug’? iconТехнология анализа художественного текста
«что  такое  хорошо,  а  что  такое плохо», закладывается нравственный фундамент личности
Slide 3&4: Что такое ‘bug’? iconТема урока Основные понятия
Что такое духовный мир человека. Что такое культурные традиции и для чего они существуют
Slide 3&4: Что такое ‘bug’? iconТема «Что такое хорошо и что такое плохо?» Классный час, 1 класс
Способствовать формированию умения различать нравственные поступки и качества человека
Slide 3&4: Что такое ‘bug’? iconЧто такое  Замуж  добродетель  по решению  и что такое грех?
Ясуби и другие алимы могли бы избежать ареста. Да  прощался с провожающими его на хадж мюридами
Slide 3&4: Что такое ‘bug’? iconДобрые дела
В. В. Маяковского «Что такое хорошо и что такое плохо». Человек так устроен, что умеет анализировать, отделять плохое от хорошего....
Slide 3&4: Что такое ‘bug’? iconЧто такое успех
Что такое успех? Многие мои одноклассники отождествляли успех с богатст вом, славой, властью и положением в обществе. Кто то описал...
Slide 3&4: Что такое ‘bug’? iconИнтервью Григория Петровича Климова по случаю его 80-летия
Григорий Петрович Вы работаете с людьми особого типа, людьми с комплексом власти уже 50 лет. Что это за люди? Что такое "Комплекс...
Slide 3&4: Что такое ‘bug’? icon«Что такое счастье»…
«Когда  всем  приятно.  радуется, что, кажется  приехали,  или  тебя  обрадовала  - у души  Когда  нет  бед.  Когда  мама  не  День рождение...
Slide 3&4: Что такое ‘bug’? iconЧто такое эссе?
Клопедический словарь дает такое развернутое определе­ние: «Эссе, жанр философской, литературно-критической, историко-био­графической,...
Разместите кнопку на своём сайте:
TopReferat


База данных защищена авторским правом ©topreferat.znate.ru 2012
обратиться к администрации
ТопРеферат
Главная страница