Предупреждение: у нас есть цензура и предварительный отбор публикуемых материалов. Анекдоты здесь бывают... какие угодно. Если вам это не нравится, пожалуйста, покиньте сайт. 18+

История №1143425

Переключения битов.

Однажды, в одной европейской стране проходили выборы. На выборах парламент разрешил в паре округов сделать электронное голосование, через специальные компы на избирательных участках. Все шло строго по демократическому протоколу, так как это вам не какая-то там диктатура: засовываешь идентификационную карточку, нажимаешь кнопку, получаешь чек-подтверждение. Свободен! Локальный сервер аккумулировал все голоса на участке и вечером посылал конечный результат на центральный сервер.

В общем все шло как по-маслу и главный айтишник уже сидел в баре, когда зазвонил телефон: "Хьюстон у нас проблемы!". Прыжок в такси, шеф с белым лицом: один из кандидатов (на локальных выборах типа главы района) получил больше электронных голосов чем это было возможно. Начали разбираться, к счастью велись логи, т.е. все ходы были записаны. Нашли проблемный участок, нашли приписку, 4096 голосов, скорректировали протоколы, выборы были спасены!

Уже после выборов была назначена комиссия. Проверили логи - не было вмешательств извне. Взялись за программистов, но код во-первых был покрыт тестами, т.е. делал то что должен был делать, а во вторых код проверили еще раз и нашли много чего интересного, но именно в этом месте именно такой ошибки, именно в 4096 голосов быть не могло. К слову, само число 4096 - это не просто случайное число, это 2^12, кто еще помнит, т.е. с ИТ-перспективы выглядит, что кто-то/что-то в одной из ячеек памяти переключил 13-бит с 0 на 1. Например был 1 голос т.е. в двоичном виде 000001 и если "переключить" например 4-й бит, то стало 001001 = 1 голос + 2^3 т.е. 1 + 8 = 9 голосов.
Поэтому изготовители железа тоже не ушли от вопросов, и у них также нашлась маза: есть многочасовые тесты-циклы записывания-считывания, проверили все железо данной серии - никаких аномалий. В общем заключение комиссии: никто не виноват, так само получилось:-)) На это некоторые депутаты стали возражать: это что за, к черту, выборы, если мы такие машинки по всей стране понаставим, кого там нам компьютеры навыбирают???

Когда инженер сталкивается с необъяснимыми явлениями, он конечно читает мануалы, но потом плачет и идет на поклон к людям поумнее, к ученым людям так сказать. Нашелся один дяденька, который всю жизнь посвятил этим переключениям битов. Оказывается проблема есть и она не вчера возникла. Когда люди стали отправлять первые спутники на орбиту, то заметили, что время от времени, кто-то в память каждого бортового компьютера гадит, т.е. без всякой причины происходят случайные переключения. Поэтому в критических местах используется правило тройного резервирования, т.е. работают 3 идентичных "модуля" параллельно, и если один из них "говорит" 1, а два другие 0, значит произошла ошибка и результат должен быть все же 0.

Но что же, по мнению ученых, вызывает эти спонтанные ошибки? Тут надо углубиться в физику, как работает транзистор, не буду. Но "на пальцах", это такой переключатель: если выключен, то это 0 - ток не течет, если включен - 1, "течет" ток. Причем транзистор может управлять током большей силы, чем нужно для самого переключения. Т.е. образно говоря огромная река тока, а сам переключатель - плотина под управлением маленького ручейка: перегораживает или открывает. Нашу планету непрерывно бомбардируют заряженные частицы, с Солнца и с других звезд. Что произойдет, если такая частица с ненулевой энергией долбанет в правильном месте по транзистору? Т.е. потечет ручеек в нужном месте в нужное время? Вопрос риторический и подтвержден экспериментами.

К черту выборы, а как глубока и широка эта проблема? А вот как: Однажды едет водитель на своей машине с женой. И тут жена начинает кудахтать: ты куда ускоряешься, здесь же знак 60! А водитель: я и не ускоряюсь вовсе, это машина сама: каждый раз, когда я жму на тормоз, а она разгоняется! К счастью дорога была прямая, и он так долго жал на тормоз, что в конце концов тормозные колодки перегрелись и заклинили. Позвонили в сервис: им там покрутили пальцем у виска - такого быть не может. Вы наверное педали перепутали:-) А мужика стаж вождения - несколько десятков лет. Но потом были еще похожие случаи и чашу переполнил звонок в 911, когда (уже другой) водитель перед смертью смог передать в службу спасения, что его машина не слушается управления, несется к перекрестку, он ее не может остановить. Назначили расследование, без дураков, собрали все эти случаи и выяснили, что все машины были механически исправны, но какая-то фигня с бортовым компом. Был крупный скандал и отзывы уже проданных машин из-за "сбоев работы бортового компьютера". Как оказалось, в некоторых моделях, управление подключено "к железу" не механически, а через компьютер. Т.е. нажимая на педаль тормоза - водитель передает сигнал, а нажимает на тормоза уже компьютер. Как курьез, кто-то, из-за этой ошибки, уже отсидел часть срока "за групповой преднамеренный наезд на пешеходов", хотя водитель уверял в суде, что машина не слушалась управления.

А что другие отрасли? Оказывается и у коллег по цеху не лучше, уже были сбои автопилота самолета (после этого стали 3x резервировать). Роутеры периодически сами отрубаются и куча людей сидит без интернета, Cisco-инженеры в курсе проблемы. У Google, в начале 2000-х, система индексирования не работала 5 месяцев. Есть такие компьютеры, которые делают другие компьютеры или станки. И там уже тоже были подобные переключения (и проблемы огромных размеров).

И так как транзисторы становятся все меньше и меньше, то для переключения битов нужны частицы с меньшей энергией. Происходит миниатюризация и полное "окомпьютерирование" всего на свете. Тройное резервирование никто не делает, смотри истории про эффективных менеджеров и представь, что надо заплатить за 3 айфона, покупая один:-)

Так помолимся вместе разуму инженеров-атомщиков и других ракетчиков с красной кнопкой:-))

История бессовестно стырена у общественного радио RadioLab.
[337]
реклама на сайте | контакты | о проекте | вебмастеру
© 1995-2024 Анекдоты из России. Составитель Дима Вернер