Согласно закону Мэрфи, если какая-то неприятность может случиться, то она случается. Человек может ошибиться, поэтому он обязательно ошибается. Это происходит при проектировании аппаратуры, при написании программ, при изготовлении аппаратуры. Иногда ошибки обходятся очень дорого. Забудем на минуту о возможных трагических последствиях программного сбоя и отвлечемся…
В 1994 году профессор математики из Вирджинии при вычислении обратных величин простых чисел обнаружил, что микропроцессор Pentium в некоторых случаях неправильно делит числа с плавающей запятой. Представители Intel заявили: «Это даже не ошибка. Даже, если вы инженер, вы это не увидите. Если брать числа с плавающей запятой случайно, вероятность получить неточный результат ~10-10».
Но специалисты Intel не объяснили, почему пользователи будут брать числа случайно. Оказалось, что в компании знали об ошибке, но скрыли её. Через месяц компания согласилась заменить микропроцессоры с неправильно спроектированным устройством деления, что обошлось в 300 миллионов долларов. Этот случай нанес большой ущерб репутации фирмы. После этого стали шутить, что надпись на компьютере «Intel inside» (внутри микропроцессор Intel) — это не реклама, а предупреждение. Кстати, в 2006 г. фирма Intel сменила этот рекламный слоган на новый «Leap ahead» (прыжок вперед).
В 1983 году мир был на грани ядерной войны. Из-за ошибки советской системы раннего предупреждения блики солнца на облаках воспринялись как пуск американских ракет. На пульт системы поступило сообщение о запуске пяти американских ракет. К счастью, дежурный офицер усомнился в правильности работы системы, он понимал, что первый ядерный удар не может наноситься таким небольшим количеством ракет. Похожая история произошла несколькими годами ранее с американской системой ПВО. Она восприняла Луну как приближающиеся советские ракеты.
Изредка ошибки могут обрадовать людей. В 1996 году из-за ошибки компьютера одного американского банка на счета 823 его клиентов было зачислено почти по 925 миллионов долларов. В октябре 1995 года 200 тысяч государственных служащих во Франции получили зарплату дважды. В Германии после перехода страны от марки к евро банкоматы стали выдавать неограниченное количество денег при любом вводимом пароле.
Иногда ошибки вызывают улыбку. В сильно загруженной компьютерной системе постоянный поток процессов с высоким приоритетом не дает низкоприоритетным процессам доступа к ресурсам. Это заканчивается одним из двух способов. Либо процесс, в конце концов, получит долгожданный доступ, когда система будет меньше загружена, либо система «рухнет», и все незавершенные низкоприоритетные процессы будут потеряны. Рассказывают, что в 1973 году при выключении машины IBM 7094, которая работала в Массачусетском технологическом институте, был обнаружен незаконченный процесс с низким приоритетом, который был запущен в 1967 году…
Еще забавный случай, кибернетическому цензору в Интернете не понравилась строка:
menu*/#define
из-за запрещенного буквосочетания «nu…de» (по-английски — голый).
По некоторым данным, на 1000 строк обычной программы в среднем приходится 25 ошибок. В хорошей программе — 2 ошибки на 1000 строк. В программном обеспечении американского космического Шаттла не более одной ошибки на 10 000 строк. Для космической отрасли вся аппаратура и программное обеспечение проверяются особенно тщательно, так как от их качества и надежности зависит человеческая жизнь. Тем не менее, во время 10-дневного полета американского космического корабля Аполло-14 было обнаружено 18 ошибок.
Автор: Грушин А. И.