ЗРК Патриот: как одна ошибка в софте угробила 28 солдат

Аватар автора
Техника и Механика www.podshipnik-info.ru
ЖМИ ?В ТОП И ПОДПИСЫВАЙСЯ: Ни самая сильная армия в мире, ни новейшее вооружение не спасут от смерти, если в дело вмешаются математика и невнимательный программист! Американцам пришлось прочувствовать это на собственной опыте. Вечером 25 февраля 1991 года, уже под самый конец операции «Буря в пустыне», на американскую авиабазу в саудовском Дахране свалился иракский «Скад». Вот, казалось бы, причём здесь округление дробей? Ракета разнесла казарму 475-го отряда квартирмейстерской службы армии США. Взрыв убил 28 человек — это пятая часть всех погибших американцев за всё время войны в Заливе. Ещё около сотни получили ранения. «Скад» был обнаружен радаром дежурной батареи зенитного ракетного комплекса Patriot, прикрывавшей Дахран. Ракету засекли… и ничего не сумели сделать. Осталось только наблюдать, как она валится на казарму. Как выяснилось, вину за смерть 28 человек взял на себя софт зенитного комплекса. Ошибка в нём был простая, как кирпич. Не ошибка даже, а математическая фича: разработчики и военные о ней знали, и все на неё плевали, как на чепуховину ничего не значащую. Внутренний таймер ЗРК Patriot устроен как счетчик количества интервалов времени, прошедшего с момента включения системы. Длина такого интервала — 0,1 секунды. Чтобы перевести количество этих отрезков в секунды, его, понятное дело, нужно разделить на 10. Что для этого предложили разработчики? Естественно, умножить на 0,1. В машинной арифметике деление часто подменялось умножением на обратное число, так...

0/0


0/0

0/0

0/0