2038年問題とは何なのか?

このエントリーをはてなブックマークに追加

2038年問題をご存知でしょうか?

2000年問題に比べて、この2038年問題はプログラミング経験者でないとわかりづらい問題かもしれません。

2000年問題は、西暦を二桁で表現していた場合に99年の次の年が00年として扱われてしまうことを原因とする問題です。

では、2038年問題とは何でしょうか?

2038年問題とは、2038年1月19日3時14分7秒を過ぎると、コンピュータが誤動作する可能性があるとされている問題です。


標準的なC言語のプログラムでは、時刻の表現にtime_t型を使用しています。time_t型は、1970年1月1日0時0分0秒からの経過秒数を使用して時間を表現しています。

time_t型は一般的に、符号つき32ビット整数(signed long int型)のため最大値は”2,147,483,647”です。つまり、2,147,483,647秒までしか時間の計測が出来ないことになります。

1970年1月1日0時0分0秒から2,147,483,647秒経過した日時が冒頭で紹介した2038年1月19日3時14分7秒になります。

実はすでに2038年問題を原因とする不具合が報告されています。

コンピュータの“西暦2038年問題”発生、早くも日本を揺るがす
(2004年)1月11日に23行の銀行でATM(現金自動預払機)が一部の取引で正常に利用できなくなったトラブルの原因が、この2038年問題によるものだった。

 この問題が起きた銀行はいずれも日本IBMのソフトを使っていたが、このソフトの内部に、時刻の2倍に足し合わせる処理があり、ちょうど1970年と 2038年1月19日の2分の1を超えた2004年1月11日の朝から、2038年問題が顕在化して、システムが正常に稼動しなくなった。

また、Micosoftではコンピュータのシステム日付が 2038 年 1 月 19 日 以降に設定しないように呼びかけています。

システム日付が 2038 年以降に設定されていると、Windows XP のセットアップが途中で停止する場合がある
コンピュータのシステム日付が 2038 年 1 月 19 日 以降に設定されている状態で Windows XP のセットアップを行うと、セットアップの途中に表示される、”しばらくお待ちください”の画面で処理が停止し、システムがハングアップした状態になる場合があります。

2038年までに対策が施されるのは間違いないですが、2000年問題のときと同様に、2038 年 1 月 19 日はコンピュータ技術者は泊まり込みで会社に待機することになりそうです。

記事の内容はいかがでしたか?よろしければ下記のボタンから共有してみて下さい。
このエントリーをはてなブックマークに追加

2009 年 1 月 26 日 |

カテゴリー:ウェブ全般

このページの先頭へ