素歩人徒然 続・タイマー 時間の遅れ
素歩人徒然
(38)

続・タイマー


── 時間の遅れ

 「タイマー」というテーマで時間の精度と種類について言及したところ、多くの方々から貴重なコメントを頂戴した。
 Y氏からは「アウグスティヌスとホーフマンスタールに触れずして時間を論ずることなかれ」といつもながらの厳しいお叱りを頂いた。M氏からはコンピュータの時刻を自動調整してくれる便利なフリーソフトがあることを教えられた。私のホームページの読者(O君)からは、親切にも関連記事のあるウェッブ上の場所を教えてもらった(感謝!)。

 私の能力では、到底Y氏の指摘には応えられそうにないが、M氏やO君のコメントには対応できそうである。そこで、とりあえず検索エンジンを用いて件のソフトウェアを捜し出し、早速ダウンロードしてみた。

 こういうとき私は、ダウンロードした圧縮ファイルをとりあえず“LZH倉庫”と名付けたディレクトリ上に保存することにしている。この倉庫には、これまでにフリーで入手した便利なソフトウェアツールが(圧縮形式のままで)すべて貯えられている。先ずそこへ保存しておいて、それからおもむろに別の場所で解凍したり、ウィルスチェックしたりするのである。

 私はいつもの手順通り、ダウンロードしたファイルをこの倉庫の中にぶち込んだのである。すると、何と何と! 同じ名前のファイルが既に倉庫内に存在するではないか。どうやら以前どこかでこのフリーソフトのことを聞きおよび、そのときにダウンロードしておいたらしい。すっかり忘れてしまっている。これでは折角のツールも「宝の持ち腐れ」というものである。私は大いに反省しつつ、そしてもちろんM氏に感謝しつつ、あらためてこのソフトウェアをインストールしたのであった。

 このソフトウェアを使ってみると、これが大変に具合がよい。ダイアルアップ接続を行うと直ぐそれを察知して、ウェッブ上のどこかから正確な時刻を取得し自動的に時刻を調整してくれるのである。私は一日一回は必ずダイアルアップ接続を行うから、私のマシンは毎日必ず時間調整が行われる訳である。こいつはなかなかいい。たいしたソフトウェアである。しかも「何秒遅れていたので調整しました」などと調整した値をログとして残してくれる。

 このログを毎日眺めていると、だいたい一日に3秒前後の遅れが検出されていることが分かった。だいぶ大きな遅れだ。これでは一月間で合算すると約1分半の遅れが出てしまうことになる。私のマシンはだいぶ古いマシンで性能的にも限界に近づいている。バックアップ用の電池の能力も弱ってきているのであろう。そう考えて、私は何の疑問も感じなかった。

 しかし後から考えてみると、私はこれまでコンピュータの時刻を調整するとき、進み過ぎを直したという経験が一度もない。必ず遅れをとりもどすために進ませていたのである。なぜ、何時も何時も遅れるのだろうと、当然不思議に思うべきであった。私がそのとき感じたのは、精々、人間の持つ体内時計は進み勝ちになるのに、コンピュータのタイマーはいつも遅れ勝ちになるんだなぁ、‥‥とまあその程度のことに過ぎなかった。

 人間は、活動と睡眠など一日のサイクルを生み出すために体内時計を持っている。この時計が進み過ぎると、時刻を合わせるための遺伝子が働き自動的に調整をしてくれる。生物は長い進化の歩みのなかで、明暗などに対応する約24時間周期のリズムを獲得した。この時を刻む振り子の役割を果たす遺伝子は“ピリオド”と呼ばれている。ところがこのピリオドの作り出すリズムは正確には24時間ではない。そのため、生物は環境に合わせて日々時刻を調整できるような仕組みを持つことになった。それも、竜頭を使って針を動かし一気に合わせるのではなく、ゆっくりと時間を掛けて徐々に合わせていくのである。たとえば、体内時計は夜明け前に光を感じると「朝がきた」と認識し、それに合わせて時計を少しずつ調整する。反対に体内時計は夜になっているのに光が当ると「まだ夜ではない」と認識して時計を少しずつ遅らせる。いずれも光を感じるセンサーがあって、それが体内時計に直結しているのである。

 海外旅行などで起こる「時差ボケ」は、体内時計が(進んだと言うべきか遅れたと言うべきか)環境の時間と比べて著しく食い違いを起こしてしまったケースである。もはや本人が気が付かないうちに自動調節できるような限界を超えてしまっている。それで、本人は苦痛を感じるのである。しかしこういう場合でも、強い光に当たると比較的楽に(ちょっと時間は掛かるが)調整できることは誰でも経験的に知っている。

 いわゆる時差ボケの場合は別にして、普通に起こる体内時計の狂いは常に進む方向へずれることが知られている。これは多分、遺伝子の設計図が作られた時の1日の長さと現在の1日の長さが違っているのが原因ではないかと思う。つまり地球の自転の早さは次第に遅くなってきているから、大昔の1日は今の1日よりも時間的に若干短かったと推測される。その頃に設計された遺伝子が今でも営々と使われ続けているのだから、これはどうしたって調整が必要となる。したがって生物(多分人間だけではなかろう)の体内時計は必ず進む方向へとずれるのである。

 つまり、人間の持つ体内時計は常に進み勝ちとなり、コンピュータの時計は遅れ勝ちになるという訳だ。私はこれまで、コンピュータのバッテリーの能力は次第に弱まるから、コンピュータの時計が遅れるのは至極当然のことであって、何の不思議もないと思ってきた。しかしO君が教えてくれたコンピュータのタイマーに関する記事は、大変興味深い事実を私に教えてくれた。その内容を私なりにまとめると、次のようになる。

 コンピュータのタイマーが遅れるのは、基本的には内蔵されている水晶発振器を使ったマイクロチップ(*1)の性能の問題である。水晶発振のマイクロチップの仕組みは、物理的な力と電界の相互作用によって水晶を振動させ、一定周波数の電気信号を生じさせる。このとき水晶の品質が悪いと、温度、湿度といった環境条件から影響を受けやすくなる。つまり水晶自体が膨張したり収縮したりして振動が不安定になるのである。
【注】(*1)このチップは一個当りの製造コストが約25セント程の代物なのだそうである。

 しかし遅れる理由は必ずしも性能が悪いからということだけではないらしい。実は、必ず遅れるように設計されているというのである(真偽のほどは知らぬ)。
 コンピュータの時刻が遅れた場合に、それを修正するのは容易である。単に時間を進めればよい。そのとき跳ばされた時間は、単に何もしなかった時間として扱われシステムには何の影響も与えない。それに対し時間を遅らせる作業の方はそれほど簡単ではない。竜頭を廻すようにして一気に時間を戻すと、その戻された時間帯はシステムにとって重複して存在する時間帯になってしまう。その結果、システムに重大な混乱を引き起こす可能性があるというのである。

 コンピュータで処理される作業はすべてタイムスタンプ付きでログが取られ、時系列で管理される。アプリケーションの動作の結果として作られるファイル等も同様で、その管理はすべてタイムスタンプが拠り所になっている。このような環境下でシステムが稼動しているとき、時刻修正によって突然過去に戻されたらどういうことになるか。時系列によって管理された世界での前後の関係が崩れ、システムは滅茶苦茶になってしまうであろう。

 したがって、コンピュータのタイマーは遅れることはあっても決して進んではいけないのである。進むくらいなら遅れた方がまし、という訳である。
 不幸にして時刻が進んでしまった場合には、クロックの刻みを遅らせて時差ボケを直すときのように、少しずつ少しずつ正しい時刻に近づけていく方法で調整されなければならない。そういう方法を取らない限り、時刻を遅らせる作業は極めてリスキーなものとなろう。

 体内時計のような精巧な仕組みをコンピュータ上で実現するのは、どうやら途方もなく難しいことのようである。ただ、ここで救われるのは「早く進むくらいなら遅れた方がまし」とか「遅れを取り戻すのは容易だ」といった我々人間が採用した考え方(正確には、マイクロチップ設計者の判断?)は、私のような怠け者にとってはこの上なく勇気づけられる「教訓的な言葉」のように思われるのである。貴方(女)もそうは思いませんか(思いません!)。■