Еще к середине прошлого года о существовании пресловутой «Проблемы 2000» были осведомлены не только прилежные читатели, но и неграмотные, и глухие, и слепые недаром за последние пару лет «компьютерным страшилкам» посвятили столько времени журналисты, а подпевал им мощный хор специалистов, так или иначе связанных с компьютерами. Наверное, многие могут даже примерно припомнить суть проблемы - использовавшиеся в ранних компьютерных программах для обозначения года два разряда не могут передать различие между 1900 годом и 2000-м (их хватает только для обозначения последних двух нулей). К счастью, никаких действительно серьезных происшествий в момент перехода даты не случилось, однако это не означает, что можно полностью расслабиться. Стоит напомнить, что проблема вовсе не сводится к ночи с 31 декабря на января 2000 года.
Поясним в нескольких словах истинную суть «ошибки тысячелетия». «Проблема 2000» является популярным эвфемизмом для так называемой проблемы граничных циклов, а переход с 1999-го на 2000 год - лишь ее частный случай (часть известных граничных циклов приведена на схеме внизу). Когда в шестидесятых годах писались первые программы для мэйнфреймов («больших»> компьютеров со сложным программным обеспечением; персоналок в те времена еще не существовало), последние два разряда из шести, предназначавшихся для указания даты, использовались не только для обозначения года, но и для других служебных надобностей. Так, набор из двух (или четырех) девяток в дате мог обозначать команду сброса, мог быть привязан к парольным решениям или обозначать другую важную команду. Поэтому в 99-й день 99-го года (9 апреля) или в 9-й день 9-го месяца 99-го года (9 сентября) вполне могли случиться (а кое-где и случились) некоторые неполадки программном обеспечении. Не стоит валить всю вину за это на программистов многие ли в 60-х годах всерьез задумывались о том, что случится через сорок лет?
Граничные циклы есть и в этом году. Кстати, не все они напрямую связаны с проблемой девяток. Например, самый серьезный из них предстоит перешагнуть В ночь с 28 на 29 февраля нынешнего да. Дело в том, что нынешний год високосный - в григорианском календаре так называется год, в котором феврале не 28, а 29 дней. Формальное же определе ние високосного года зиждется на трех правилах: ) каждый четвертый год - високосный; 2) последний год века, кончающийся на 00, - не високосный; 3) год, кончающийся на 00 и делимый на 400, високосный. Нынешний как раз такой, «исключительно-високосный». Программисты, знающие первые два правила и забывшие о третьем (в конце концов, оно применяется всего лишь раз в 400 лет, и прошлый раз никаких программистов не было в природе), вполне могли допустить ошибку. И эта ошибка теоретически может, например, нарушить работу компьютера, отслеживающего движение танкера, прибывающего в порт на значения после 28 февраля. К тому же случившийся сбой может распростра ниться затем далее - почти все занятые серьезным делом компьютеры на свете сейчас связаны сетями.
Другие граничные циклы тоже могут представлять известную опасность скажем, 10 октября нынешнего года бу дет первой в истории программного обеспечения восьмиразрядной датой (2000/10/10).
Кроме того, вообще не стоит считать, что серьезные неприятности, связанные с «Проблемой 2000», могли произойти исключительно в новогоднюю ночь. В деловом обороте существуют разные временные циклы, и эта ошибка может «выплыть» в момент начисления январской зарплаты, квартальных процентов на вклады или составления компьютером полугодовых финансовых отчетов. Разумеется, шумиха по поводу «ПроблеМы 2000»> была на руку и программистам, и консалтинговым компаниям. Но не нужно забывать о том, что если бы они не теребили правительства, журналистов и вообще всех на свете, в решение проблемы не были бы вложены сотни миллиардов долларов. А в таком случае, возможно, и новогодняя ночь могла обернуться апокалипсисом. Теперь же в слабокомпьютеризованных странах (вроде России) опасаться практически нечего. А в сверхкомпьютеризованных (в США, например) случиться еще может что угодно и где угодно. Впрочем, причиной может быть не только «Проблема 2000», но и, скажем, вспышка солнечной активности, которая прервет передачу важных данных через спутник компьютерные сети пока недостаточно защищены от внешних воздействий. Впрочем, это уже совсем другая история. Егор Быковский