« 光 |  トップページ |  新曲 »

2004年02月04日

2038年問題

少し前にPCの西暦2000年問題があったのは覚えていると思う。
何とか重大な被害も出すことなく過ぎ去っていった。知ってると思うが2000年問題は西暦をメモリーをけちって4桁で表すところを2桁で表していた。直すには該当部分のプログラムをプログラマが直せた。しかし2038年問題はそう簡単にはいかない。現在のほとんどのアプリケーションはC言語で書いてある。そのC言語の時間を表すのには「time」関数を使い、そこから得られる秒数を格納するのに「time_t」型の変数を使う。その変数はlong型の整数と定められている。long型の整数とは符号付きで32ビットを2進数で表すものである。しかし符号に1ビット取られるので、実際は31ビットの2進数で表す。C言語の仕様上、時間のデータは全て「秒」で認識している。基準日時が「1970年00:00:00」であり、現在の時刻はこの基準日時から経過した秒数を計算して出している。31ビットの2進数で表すことの出来る秒数は2の31乗で2147483647秒であり、それは約68年になる。その結果正常に時刻を計算出来るのは2038年1月19日までとなる。まだあと何十年もあるじゃないかと思うかもしれないが、そう簡単にはいかない。これは言語の使用なので、勝手にプログラマが書き換えるわけにもいかない。現在考えられている回避策は、long型をlong long型にし、64ビットにすることだ。そうすれば2922億年までもつ。しかし型を変えてしまうと、前に使っていたシステムとの整合が取れなくなってしまうので、かなり無理がある方法だろう。他にはlong型をunsigned long型にすることだ。これは符号無し32ビット整数と言い、32ビット全てを使うことが出来る。そうすると2106年までは持つことになる。しかしこの方法は一時しのぎに過ぎない。結局現在まだ効果的な解決方法は見つかっていない。また2038年まで同じシステムを使うこと何てないだろうと思うかもしれないが、銀行などの巨大なシステムはもうかなり前に書かれたプログラムをちょこちょこ手を加えたりして動かしている。従って2038年にも使われている可能性は非常に高いと言えるだろう。2000年問題より遙かに困難な問題が2038年問題なのである。34年後までには解決されていることを願う。

投稿者 Mojya : 2004年02月04日 05:23




トラックバック

このエントリーのトラックバックURL:
http://mojya.s8.xrea.com/x/mt/mt-tb.cgi/8


2008年06月
Sun Mon Tue Wed Thu Fri Sat
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          
最近のエントリー
最近のコメント
  • 卒論発表当日
      └たなk 2006/02/20
      └Mojya 2006/02/22
      └たなk 2006/02/24
  • タブブラウザ
      └shery-k 2005/10/21
      └Mojya 2005/10/21
  • 新学科
      └shery-k 2005/04/22
      └Mojya 2005/04/23
  • 引用してみるテスト
      └shery-k 2005/03/08
  • 「呪怨」続報
      └Mojya 2004/01/29
  • テスト期間
      └Mojya 2004/01/26
  • カテゴリー

  • F1 (2)

  •   └ F1そろそろ始まります
      └ F1 第9戦 アメリカGP

  • Movable Type (5)

  •   └ エントリーの投稿時のリンクを別窓で表示するテク
      └ 引用してみるテスト
      └ アップデート

  • ZONE (5)

  •   └ ZONE 武道館ラストライブ
      └ デビューイベント
      └ 「N」レビュー

  • その他 (12)

  •   └ アニメ汚染度チェック
      └ ポーション
      └ デミオピンチ!

  • アフィリエイト (3)

  •   └ DELL 新作ノート発売!
      └ アフィリエイト入門
      └ 寂しいので

  • アルバイト (7)

  •   └ 地震で電車止まった
      └ NSビル3日目
      └ NSビル2日目

  • ゲーム (5)

  •   └ PSU
      └ PSO BB
      └ E3

  • コンピュータ (5)

  •   └ タブブラウザ
      └ Microsoft
      └ 無線LAN

  • ドラマ (3)

  •   └ 24 SEASONⅢ
      └ 24
      └ Sarah Michelle Geller

  • プログラム (1)

  •   └ 俺的プログラミングメモ

  • (1)

  •   └ 浜崎あゆみのライブに行ってきた

  • ラーメン (2)

  •   └ 麺屋武蔵
      └ ラーメン食しに3千里

  • (2)

  •   └ 研修2日目
      └ 研修1日目

  • 公務員 (2)

  •   └ 国家Ⅰ種
      └ 4月病?

  • 学校関係 (11)

  •   └ 卒業
      └ 卒論発表当日
      └ 卒論発表準備

  • 携帯電話 (2)

  •   └ 機種変更したぞ~!
      └ 機種変更

  • 旅行 (2)

  •   └ 北海道から無事帰還
      └ 北海道旅行

  • 映画 (4)

  •   └ 呪怨人気です
      └ The Grudge
      └ 「呪怨」続報

  • 本/雑誌 (1)

  •   └ 蹴りたい背中

  • (5)

  •   └ 買い増しちまった
      └ 多少復活?
      └ 引き続き 株大暴落
    アーカイブ
    検索


    リンク


    Syndicate This Blog!