2010年06月24日

49.7日問題の原因

 2000年問題というのは聞いたことがある人も多いと思います。西暦の表記を下2桁で表していたことが多かったため、「99年」の次が「00年」になり、100年前に戻ったかのようにコンピューターが勘違いするのではないかという問題でした。
人気ブログランキング
 さて、Windows 95やWindows 98には「49.7日問題」というものがあります。49.7日間、パソコンを連続稼働するとソフトウェアが止まってしまうというものです。49.7日問題も根本は2000年問題と同じようなもので、Windowsが起動してからの経過時間が0に戻ってしまうことが原因です。

 Windowsでは、OSが起動してからの経過時間を32ビットの整数で表しています。この記事では、この整数をタイマー変数と呼ぶことにします。タイマー変数の値は、1ミリ秒(0.001秒)経過するたびに1増えます。したがって、タイマー変数の値が1万であれば、10 000÷1 000ですから、Windowsが起動してから10秒経過したということになります。

 ところで、タイマー変数は32ビットですから、0から(2の32乗-1)までの値を記録しておくことができます。(2の32乗)=4 294 967 296(約43億)ですから、タイマー変数に設定できる値は最大で4 294 967 295までです。もし4 294 967 296の値になってしまうと、0に戻ります。

 つまり、Windows 98が起動してから4 294 967 296÷1 000秒が経過するとタイマー変数は0に戻ります。これが何日か計算してみると……

4 294 967 296÷1 000秒
= 4 294 967.296秒
=71 582.7883分
=1 193.04647時間
=49.7102696日

 約49.7日になりました。
web拍手 by FC2
posted by 北条利彦 at 23:29 | Comment(0) | TrackBack(0) | ソフトウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/154371142

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。