Электронная библиотека книг Александра Фролова и Григория Фролова.
 
Библиотека
Братьев
Фроловых
Электронная библиотека книг Александра Фролова и Григория Фролова.
Библиотека системного программиста
Программирование на JAVA
ПК. Шаг за шагом
Другие книги
Восстановление данных
Антивирусная защита
Статьи для
программистов
Пользователю компьютера
[Назад]

Проблема 2000 года в компьютерных системах

(С) Фролов А.В., Фролов Г.В., 1997,

Возможно, вы слышали предсказания ясновидцев о том, что в 2000 году наступит конец света. Не беремся защищать или опровергать это утверждение, однако вот что известно абсолютно точно: если не принять соответствующие меры, в первые секунды 2000 года многие компьютерные программы и даже целые системы выйдут из строя.

В чем причина этой катастрофы и как ее предотвратить?

Если ответить кратко, то причина заключается в том, что во многих программах дата хранится в сокращенном формате, причем на запись номера года отводится всего две цифры. Вспомните, вы сами тоже часто записываете дату с применением сокращений, например, как 12.05.97. При этом вы предполагаете, что этому обозначению соответствует дата 12 мая 1997 года.

Однако что вы скажете о такой дате: 12.05.00?

Эта дата может относиться к 1900, 2000, или даже к 1500 году. При ручной обработке документов год можно определить из контекста: едва ли к вам придет, например, счет за телефонный разговор, состоявшийся в 1900 году. Однако компьютерные программы не слишком умны, поэтому невозможно предсказать, как они интерпретируют указанную выше дату.

Если в канун 2000 года вы решили позвонить своему приятелю и поздравить его с праздником, этот звонок может разорить вас. Пусть, например, вы начали разговор в 23 часа 55 минут 31 декабря 1999 года, а закончили его в 00 часов 5 минут 1 января 2000 года. Если компьютерная система, обслуживающая телефонные переговоры, настроена правильно, вам придется оплатить только 10 минут. Однако представьте себе, что эта система хранит лишь две последние цифры года. При вычитании из нуля числа 99 получится отрицательный результат, равный -99 лет.

Как этот результат будет интерпретироваться программой расчета оплаты времени разговора?

В худшем случае программа проигнорирует знак и к вам придет счет за разговор продолжительностью 99 лет. В лучшем (для вас) случае программа просто откажется работать, и тогда убытки понесет телефонная компания.

Насколько серьезна проблема 2000 года?

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

Что же можно сделать за оставшееся время?

Лучшее решение - исследование и доработка компьютерных систем, а то и их полная замена. Заметьте, что на создание многих сложных программ уходят годы, поэтому не откладывайте проблему 2000 года в долгий ящик. Зарубежные фирмы уже тратят на предотвращение компьютерной катастрофы миллионы долларов, так как возможные убытки от нее могут быть еще больше.

Если вы собираетесь приступить к исследованиям последствий этой проблемы в вашей компании, на что следует обратить внимание в первую очередь?

Конечно, это операционные системы и старые прикладные программы, разработанные для "больших" компьютеров и мини-ЭВМ на таких языках программирования, как Ассемблер, PL-1, COBOL и других. Многие компании откладывают модернизацию компьютерной техники, пока старая продолжает приносить прибыль. Однако в 2000 году такие компании будут вынуждены модернизировать или заменить свою технику и программы, потому что старая компьютерная система просто откажется работать.

Не следует также думать, что если ваша компания уже давно внедрила персональные компьютеры, локальные и глобальные сети, то она застрахована от проблем на роковом рубеже веков.

Программное обеспечение персональных компьютеров и серверов, как системное, так и прикладное, тоже может дать сбой в 2000 году. Это относится к базовой системе ввода/вывода BIOS, некоторым приложениям операционной системы Microsoft Windows версии 3.1, сетевой операционной системе Novell NetWare версии 3.12 и более ранних версий, а также к другим программам. Вы должны тщательно проанализировать все компьютеры и все программное обеспечение, которое применяется в вашей компании, даже если оно было приобретено только вчера.

Если вам захочется проверить устойчивость вашей системы к смене столетия на практике, вы, конечно, можете это сделать, просто переставив часы вперед. Однако такое "путешествие во времени" опасно, так как ваши компьютеры могут повести себя самым непредсказуемым образом. Нужно тщательно подготовиться к эксперименту, выгрузив на архивные носители все данные, а также отключив систему от глобальных сетей. Будьте готовы к тому, что последствия опыта могут быть столь же разрушительны, как последствия массированной вирусной атаки.

И в заключение сообщим вам адрес сервера Web, где вы найдете более подробную информацию о проблеме 2000 года. Это сервер http://www.year2000.com. Здесь есть многочисленные статьи и ссылки на другие ресурсы Internet, которые помогут вам подготовиться к встрече 2000 года.


[Назад]


Создание интернет-магазинов: http://www.shop2you.ru/ © Александр Фролов, Григорий Фролов, 1991-2016