for e's laboratory
パソコン実習室
パソコンの時計 ハードウェア クロックとシステム クロック
  next ≫

T.タイム ゾーンとクロック


 パソコンが正常に機能する上で、時刻情報はとても重要な要素です。この時刻情報を得るために、パソコン内部にはクロックと呼ばれる独自の時計(計時の仕組み)を備えています。
クロックはどんな仕組みで時刻情報を提供しているのでしょう。

T.1.タイム ゾーン と ローカル タイム

 自宅にあるパソコンといえど、インターネットを介して世界中のサーバやパソコンとの通信が可能です。こうなると世界中のパソコンが同じ基準の時刻情報を使う必要性が生じ、UTC(Universal Time Coordinated)と呼ばれる協定世界時をコンピュータの世界における標準時とするようになりました。
 ・・・ とはいえ、それ程厳密な話でもなく、パソコンの世界ではUTCとグリニッジ標準時(GMT)は同義と捉えても何の不都合もありません。
 両者の値には問題となるほどの差はありませんし、Windows はGMTという表現も使っています。
  *** されど、GMTには夏時間があるし、100年間で18秒程度のずれは生じるようです。 ***

 さて、コンピュータ界の標準時となっているUTCですが、ロンドン市民の生活にはシックリ馴染むでしょうけれど、世界中の市民生活に違和感なく当てはまるものでもありません。
 そこで世界を市民生活の実情に合わせたタイム ゾーン(時間帯)と呼ぶ区域に分け、UTCからの時差で補正した時刻をタイム ゾーンの標準時として適用しています。タイム ゾーンの標準時をローカル タイム(地方時)と呼んでいます。

ローカル タイムは、UTCからの時差と併せて
UTC ± 時差  ( あるいは GMT ± 時差 )
のように表記します。

 UTCより9時間進んでいる日本のローカル タイム(JST)は、UTC+09:00 あるいは GMT+09:00 となります。
※ JST と UTC+09:00 は同義です。 (JST = UTC+09:00)



T.2.ハードウェア クロックとシステム クロック

 時計やカレンダーの表示、ファイルやフォルダの作成・更新日時(タイム スタンプ)、アクセス情報の記録(ログやイベント)等に時刻情報は欠かせません。
 パソコンで使用される唯一の時計(時刻情報源)はシステム クロックと呼ばれ、OS(Windows や Linux)が維持管理します。

システム クロックの呼称について
 OS(のカーネル)が管理している時計の呼称にはシステム クロックの外に、システム時刻(タイム)、システム時計、カーネル クロック等があります。また、計時を進めるパルス(インターバル タイマー)を指してシステム クロックと呼ぶ場合もあります。
※ ここではOSが管理している時計を称して、システム クロックと呼ぶことにします。

 重要な時刻情報源のシステム クロックですが、その実態はメモリ上で管理されているため、OSのシャットダウンと共に消滅してしまいます。これではOS起動のたびに時刻情報を入力しなければならず、手間であると同時に正確さに欠けるものとなってしまいます。
*** 実際に起動のたびに、手作業で時刻情報を入力していた時期もありました。 ***

 そこでパソコンの電源を切っても時刻情報を維持し続けるハードウェア クロックが登場します。ハードウェア クロックはマザーボード上に実装され、バックアップ電池等により途切れることなく稼働するようになっています。
※ 電池切れになると時刻情報がリセットされ、パソコンが正常に起動ができなくなります。

 起動されたOSはハードウェア クロックのデータを参照して現在時刻を認識し、自OS用に編集してシステム クロックを設定します。


T.2.1.ハードウェア クロック

 ハードウェア クロックはマザーボード上の IC に実装され、RTC(Real Time Clock)あるいはCMOSクロックとも呼ばれます。他のシステム(OS)からは独立しており、コンピュータの電源を切ってもバックアップ電池により動作を継続します。
※ BIOS 設定で表示される時刻・日付の情報はハードウェア クロックです。

 ハードウェア クロックは、秒、分、時、曜日、日、月、年それぞれのバイト データを、ICチップ上に保持しています。また自身の持っている時刻情報がUTCかローカル タイムかを識別するための情報や機能はなく、時刻情報を受け取ったシステム(OS)側で認識・管理します。OSによって次のような違いがあります。
  • Windows
    ハードウェア クロックをローカル タイムと規定しています。

  • Linux
    インストール オプション[システム クロックでUTCを使用]の設定(有効/無効)で次のように変化します。
    オプション 有効ハードウェア クロックをUTCとして認識。
    オプション 無効ハードウェア クロックをローカル タイムとして認識。
    ※ このオプションは「タイムゾーンの選択」の時に出てきます。

T.2.2.システム クロック

 システム クロックはOSが管理する時刻情報で、OS起動時に生成されOS終了時には消滅します。OSは起動されるとハードウェア クロックの時刻情報を読み出し、基準時刻からの経過秒数の形式に編集してOSが管理するメモリ内にシステム クロックとして格納します。
システム クロックの基準時刻はOSごとに次のような決められています。
OS基準時刻
Linux1970年01月01日00時00分00秒
Windows1601年01月01日00時00分00秒

 Linux と Windows のどちらのOSでもシステムク ロックはUTCで管理します。
そのためハードウェア クロックがローカル タイムの場合は、メモリに格納する前に時差の補正が行われます。
※ ちなみにファイル作成・更新時に記録されるタイム スタンプもUTCで記録されます。

 OSはマザーボード上のインターバル タイマーから供給されるパルス(クロック信号)を受けて、システム クロックの更新(時計の進行)を行います。運用(管理)が開始されたシステム クロックはOS唯一の時刻(計時システム)であり、OS全体の一意な時刻情報として使用されます。




  [[ ハードウェアクロックとシステムクロック ]] next ≫